📄 一维数组 选择法 降序.cpp
字号:
/**/
#include<stdio.h> //导入包含I/O函数的头文件stdio.h
#include<stdlib.h> //导入包含随机数函数的头文件stdlib.h
#include<time.h> //导入 的头文件time.h
void main()
{while(1)
{
printf("\n\t选择排序法 降序递减\n\n");
int a[50],i,j,n,temp,max,maxsub;
printf(" 输入欲排序的数值的个数 0<n<=50(n<=0或n>50时结束):");
scanf("%d",&n);
if(n<=0||n>50){break;}
printf("\n 用随机数函数rand()给数组a动态赋值(取值范围0~32767)\n 排序前的数列为: \n");
srand((unsigned)time(NULL)); //用当前的时间设置rand()随机数函数的种子值
for(i=0;i<n;i++)
{
a[i]=rand(); //产生随机数(0~32767)给数组元素赋值
printf("%-8d",a[i]);
if((i+1)%8==0){printf("\n");} //输出一行8个
}
for(i=0;i<n-1;i++)
{
max=a[i]; maxsub=i; //设第1个元素值为当前最大值,记录其下标
for(j=i+1;j<n;j++) //在a[i+1]~a[i]中寻找最大值
{
if(a[j]>max){max=a[j]; maxsub=j;} //当前元素大于最大值,则记录
}
temp=a[i];a[i]=a[maxsub];a[maxsub]=temp; //a[i]与最大值交换
}
printf("\n 降序排序后的数列为:\n");
for(i=0;i<n;i++){printf("%-8d",a[i]); if((i+1)%8==0){printf("\n");}} //输出1行8个
printf("\n 欲继续排序吗?是则回车,否则输入‘空格’回车 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -