当前位置: 首页 > news >正文

冒泡排序,判断回文,以及12-24小时制

6-7 定义函数,完成冒泡排序算法。

本题定义一个冒泡排序算法的函数,调用函数后实现数组的升序排序,其数组长度为任意长度。

函数接口定义:

在这里描述函数接口。例如: void sort(int arr[],int n);

在这里解释接口参数。例如:其中 arr 是用户传入的参数 ,n 表示数组的长度。 函数实现对数组arr的排序。

裁判测试程序样例:

在这里给出函数被调用进行测试的例子。例如: 

在这里给出函数被调用进行测试的例子。例如:
#include <stdio.h>void sort(int arr[],int n);int main(void) {int n;scanf("%d",&n);int arr[n];for (int i = 0; i < n; ++i) {scanf("%d",&arr[i]);}//排序bubble_sort(arr,n);//输出for (int i = 0; i < n; ++i) {printf("%d ",arr[i]);}}
/* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

5 1 3 6 2 9

输出样例:

在这里给出相应的输出。例如:

1 2 3 6 9 

其实冒泡排序跟公式一样,大家只要理解他的思路就好啦 

#include<stdio.h>
void sort(int arr[],int n)
{int i,t=0,j,change=1;for(i=0;i<n&&change==1;i++){change=0;      //这个可以减少循环次数for(j=0;j<n-i-1;j++) //这个判断条件很关键{if(arr[j]>arr[j+1]){t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;change=1;}}}
}

 

6-30 判断回文

如果一串字符从左至右读和从右至左读相同,那么这串字符就是回文(Palindrome)。例如,ABCBA是回文,而ABCD则不是。本题要求编写一个判断字符串是否为回文的函数,并且通过函数参数获取字符串的中间字符(如果中间是两个字符,则获取靠左的那一个,例如字符串是ABCDEF,则中间字符是C)。题目保证输入的字符串长度在1至2000之间且不含空格、换行等分隔符。

函数接口定义:

其中 str 和 pch 都是用户传入的参数。 str 是字符串的首地址; pch 是传入的要存放字符串中间字符的变量的地址。如果字符串是回文,函数须返1,否则返回0。

裁判测试程序样例:

/* 测试程序仅为示例,实际的测试程序可能不同 */
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 100
int isPalindrome(const char* str, char* pch);
int main(){char str[MAXLENGTH],mid;scanf("%s",str);if(isPalindrome(str, &mid))printf("是回文!中间字符是%c\n",mid);elseprintf("不是回文!中间字符是%c\n",mid);return 0;
}/* 你编写的函数代码将被嵌在这里 */

输入样例:

ABCDACBC

输出样例:

不是回文!中间字符是D

 

#include<stdio.h>
#include<string.h>
#define MAXLEGTH 100
int isPalindrome(const char* str, char* pch)
{int i,j;for(i=0,j=strlen(str)-1;i<j;i++,j--){if(str[i]!=str[j])break;}if(i>=j)   //如果没有遇见break语句那么i>=j{if(i==j)  //说明是原字符串长度为奇数*pch=*(str+i);else*pch=*(str+j);return 1;}else{if(strlen(str)%2==0)*pch=*(str+strlen(str)/2-1);else*pch=*(str+strlen(str)/2);return 0;}
}

 

7-7 12-24小时制

编写一个程序,要求用户输入24小时制的时间,然后显示12小时制的时间。

输入格式:

输入在一行中给出带有中间的:符号(半角的冒号)的24小时制的时间,如12:34表示12点34分。当小时或分钟数小于10时,均没有前导的零,如5:6表示5点零6分。

提示:scanf的格式字符串中加入:,让scanf来处理这个冒号。

输出格式:

在一行中输出这个时间对应的12小时制的时间,数字部分格式与输入的相同,然后跟上空格,再跟上表示上午的字符串AM或表示下午的字符串PM。如5:6 PM表示下午5点零6分。注意,在英文的习惯中,中午12点被认为是下午,所以24小时制的12:00就是12小时制的12:0 PM;而0点被认为是第二天的时间,所以是0:0 AM

输入样例:

21:11

输出样例:

9:11 PM

相信很多人第一眼看见这个题就已经有思路了,这个题目就是考虑的条件有点多,大家细心点就好。 

#include<stdio.h>
int main()
{int a,b,c=0;char m;scanf("%d",&a);scanf("%c",&m);scanf("%d",&b);if(a>=12){if(a==12){printf("%d",a);}else{a=a-12;printf("%d",a);}c=1;}else{printf("%d",a);c=0;}if(b/10==0){printf(":");printf("%1d ",b);}else{printf(":");printf("%d ",b);}if(c){printf("PM");}else{printf("AM");}
}

 欢迎大家积极留言呀!

http://www.lryc.cn/news/298923.html

相关文章:

  • 【Vue】computed与watch
  • 探索设计模式的魅力:捕捉变化的风-用观察者模式提升用户体验
  • SpringCloud-高级篇(十九)
  • Junit常用断言
  • docker 实现 mysql:8.3.0 主从复制(2024年2月13日最新版本)
  • STM32 + ESP8266,连接阿里云 上报/订阅数据
  • 如何利用chatgpt提升工作效率?
  • MongoDB聚合:$geoNear
  • Docker-CE 国内源国内镜像
  • 【Tauri】(3):使用Tauri1.5版本,进行桌面应用开发,在windows上搭建环境,安装node,rust环境,可以打包成功,使用vite创建应用
  • C++ 堆排序
  • U3D记录之FBX纹理丢失问题
  • 监测Nginx访问日志502情况后并做相应动作
  • 【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)
  • Android性能调优 - 应用安全问题
  • C#的Char 结构的像IsLetterOrDigit(Char)等常见的方法
  • 部分意图分类【LLM+RAG】
  • 1277. 统计全为 1 的正方形子矩阵
  • Python 3 时间序列可视化指南
  • [算法前沿]--059-大语言模型Fine-tuning踩坑经验之谈
  • 【Docker】01 Docker安装与配置
  • Unity3d Shader篇(六)— BlinnPhong高光反射着色器
  • Go-zero微服务个人探究之路(十二)定时任务的选择调研
  • Java中,List、Map和Set的区别是什么?
  • Google刚刚推出了图神经网络Tensorflow-GNN
  • 链表基础知识汇总
  • Educational Codeforces Round 2(远古edu计划)
  • 【Tauri】(1):使用Tauri1.5版本,进行桌面应用开发,在windows,linux进行桌面GUI应用程序开发,可以打包成功,使用 vite 最方便
  • 「Linux」软件安装
  • Ubuntu Desktop - Terminal 输出全部选中 + 复制