原题链接:C语言训练-排序问题(2)
解题思路:
用for将数组中的每一项最大的数值存放到一个新数组里,
然后把原数组里数值最大的项赋值为-2147483648[标识],接下来重复判断中原数组循环项值为-2147483648的跳过判断
注意事项:
在有符号整数内进行排序
如果要判断n个数 a,b数组项数为n for从0开始的话 要<=n-1
将数组扩大,可排序任意数量的数值
参考代码:
#include<stdio.h> int main(void){ int a[10];//原数组 for(int i1=0;i1<=9;i1++){ scanf("%d",&a[i1]); } int b[10];//新存放数组 int c,d;//c记录最大项 d记录最大项数值 for(int i2=0;i2<=9;i2++){ c=-2147483648,d=-2147483648;//最小有符号整数范围 for(int i3=0;i3<=9;i3++){ if (a[i3]==-2147483648){continue;} if (a[i3]>d){c=i3,d=a[i3];} } if(c==-2147483648){ b[i2]=a[i2]; a[i2]=-2147483648; ;} else{ b[i2]=a[c]; a[c]=-2147483648;} } for(int i4=0;i4<=9;i4++){ if(i4==9){ printf("%d",b[i4]);//最后一项不加空格 代码整齐 }else{ printf("%d ",b[i4]); } } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复