C语言用选择法对10个整数按从大到小排序。10个整数用scanf函数输入。利用数组

如题所述

#include<stdio.h>//标准输入输出函数调用需要此头文件、就是那个printf和scanf函数要用的
void main()//主函数
{int i,j,min,temp,a[10];
printf("请输入:\n"); //屏幕输出引号内的字符然后换行
for(i=1;i<=10;i++) //从键盘上循环输入10个数据
{printf("a[%d]=",i);
scanf("%d",&a[i]);} //读取数据函数
printf("\n"); //换行
for(i=1;i<=9;i++) //比较10个数据
{min=i; //每次比较的最小数据赋给min
for(j=i+1;j<=10;j++) //比较循环控制
if (a[min]>a[j]) min=j; //大小数值判断
temp=a[i];
a[i]=a[min]; //a[i]里存放的最小数值
a[min]=temp;}
printf("\n从大到小排列是:\n"); //输出字符
for(i=10;i>=1;i--) //循环输出按大小排列的数据
printf("%5d",a[i]);
printf("\n");//每输出一个数据换行
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-29
#include <stdio.h>
#define N 10
void main()
{
int i,j,min,temp,a[N];
printf("Please input ten numbers:\n"); /* 提示你输入要排序的数字,数字之间用空格或table输完之后按Enter */
for (i=0;i<N;i++)
scanf("%d",&a[i]);
for (i=0;i<N-1;i++) /* 排序操作 */
{
min = i;
for (j=i+1; j<N; j++)
if (a[min]>a[j]) min =j;
temp=a[min]; a[min]=a[i]; a[i]=temp; /* 数据交换 */
}
printf("\nThe sorted numbers: \n"); /* 输出排序结果 */
for (i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}
第2个回答  2018-05-08
#include<stdio.h>
int main()
{
int i,j,max,temp,a[10];
printf("enter data:\n");
for (i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{
max=i;
for(j=i+1;j<10;j++)
if(a[max]<a[j]) max=j;
temp=a[i];
a[i]=a[max];
a[max]=temp;
}
printf("\nThe sorted numbers:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
第3个回答  推荐于2018-02-21
该程序功能:用选择法对10个整数按升序排序。
#include <stdio.h>
#define N 10
void main()
{
int i,j,min,temp;
int a[N]={5,4,3,2,1,9,8,7,6,0};
printf("\nThe array is:\n"); /* 输出数组元素 */
for (i=0;i<N;i++)
printf("%5d",a[i]);
for (i=0;i<N-1;i++) /* 排序操作 */
{
min = i;
for (j=i+1; j<N; j++)
if (a[min]>a[j]) min =j;
temp=a[min]; a[min]=a[i]; a[i]=temp; /* 数据交换 */
}
printf("\nThe sorted numbers: \n"); /* 输出排序结果 */
for (i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
}本回答被提问者和网友采纳
相似回答