c语言排序法
答案:2 悬赏:30
解决时间 2021-02-16 04:16
- 提问者网友:无心恋土
- 2021-02-15 21:37
c语言排序法请帮我看一下这是哪种排序?是交换排序里的冒泡排序?快速排序?还是选择排序里的简单选择排序?堆排序?
最佳答案
- 二级知识专家网友:一池湖水
- 2021-02-15 22:29
分享两种排序法示例。
全部回答
- 1楼网友:承载所有颓废
- 2021-02-15 23:07
#include<stdio.h> //链接标准头文件
#define n 5 //定义常量n并赋值为5
void main() //主函数入口
{ //表示主函数开始
int i,j; //定义整形变量i和j
int grade[n],temp; //定义n维(n=5,也就是五维啦^^)整形数组和整形变量temp
printf("输入5个数\
"); //在屏幕上显式“输入5个数”并且换行
for(i=0;i<n;i++) //开始for循环,从i=0,每次加1,直到i=4,共需循环5次
{ //循环体开始
scanf("%d",&grade[i]); //依次获取用户输入的整数值并存入数组grade中
} //循环结束
for(i=0;i<n;i++) //开始外层for循环,从i=0,每次加1,直到i=4
{ //外层循环体开始
for(j=0;j<n-1-i;j++) //开始外层for循环,从j=0,每次加1直到i等于外层循环的n-j-1
{ //内层循环体开始
if(grade[j]<grade[j+1]) //条件判断
{ //如果整形数组前面的数比其后的小,执行以下语句
temp=grade[j+1]; //将比较大的数赋值给temp
grade[j+1]=grade[j]; //将比较小的数赋值给数组中后面的变量
grade[j]=temp; //将比较大的数赋值给数组中前面的变量
} //从此便完成大小变量的交换,使得大值往前放
} //结束内层循环
} //结外内层循环,完成排序
printf("最后排序为:\
");//在屏幕显式“最后排序为:”并换行
for(i=0;i<n;i++) //同开始的for循环类似
{ //开始循环输出
printf("%d",grade[i]); //只是这里要逐个输出数组中的五个数值
} //结束循环输出
printf("\
"); //输出换行到屏幕,看不到什么效果,可删掉
} //结束main()函数
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯