c语言任意输入5个数,并按从大到小顺序输出
发布时间:2025-05-11 21:15:34 发布人:远客网络
一、c语言任意输入5个数,并按从大到小顺序输出
1、short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)
2、long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)
3、long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)
4、signed:修饰整型数据,有符号数据类型。(C89标准新增)
5、unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)
6、restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)
7、struct:结构体声明。(K&R时期引入)
8、union:联合体声明。(K&R时期引入)
9、enum:枚举声明。(C89标准新增)
10、typedef:声明类型别名。(K&R时期引入)
11、sizeof:得到特定类型或特定类型变量的大小。(K&R时期引入)
12、inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)
二、c语言,输入三个不同的数字,按从从大到小输出
1、参考2楼,修改两个语法错误:scanf("%d,%d,d%",&x,&y,&z);应该是:scanf("%d,%d,%d",&x,&y,&z);输出语句:printf("输入的三个数字由大到小排列为:%d,%d,%d",z,y,x);2、算法太乱,应该先对x,y,z排序,排序的算法是两两相比较,如果前者大就交换,最后得到x,y,z是从小到大,输出时反序z,y,x就行了,简洁完整并通过了调试的代码如下:#include<stdio.h>
printf("请输入三个不同的数字,每输入一个数字用逗号隔开\n");
printf("输入的三个数字由大到小排列为:%d,%d,%d",z,y,x);
三、C语言从小到大排序问题
第一个for循环是为了从a[0]开始遍历a数组第2个for循环是从a[1]开始遍历。
t=i m=a[i],这是为了取得外层循环遍历的那个值m和下标i。
第1,2个孔是if的语句,if里面有个语句是m=a[j]了,那么要满足什么条件,才会执行这个语句和第2个空呢?第2个for循环是从a[1]开始到a[9],那么就是要把这9个值中选取1个值出来,下面的第2个if(t!=i)很明显是把m当成中间值,进行1个变量交换,交换的值为a[i] a[t],所以第3个空填a[i]=a[t],这里是第1个for循环结束的最后1个语句。交换a[i]和a[t]的值,刚开始定义了t=i,如果if语句里面什么都不做的话,显然这样做是完全没意义的,所以语句2肯定是需要对t进行1个赋值,下面的if语句就好判断t和i的关系了,因此语句2填t=j,if语句里面的意思是m=a[j],t=j可以发现与刚开始的t=i m=a[i]是不是很类似么,获得这个值以及它的下标,那满足什么条件才这么做?根据下面的if语句可以知道,和a[0]比较是为了获得a[1]-a[9]中的最小值,然后和a[0]比较,因此如果a[j]<a[i],就需要用1个下标t和值m来保存这个数。如果a[j]都比a[i]大,那么这个if语句里面的内容就不会执行,t也是等于i的,相当于什么没没做,第一个for循环下来,a[0]就是最小的值,直到遍历到a[8],反之交换a[0]和最小值a[j]的值。