用C语言编写“输入10个整数,按从大到小排列”的程序说明

2025-04-14 08:23:25
推荐回答(1个)
回答(1):

#include
void main()
{int i,j,min,temp,a[10];
printf("请输入:\n");/* 提示用户输入信息 */
for(i=1;i<=10;i++)/* 这里有问题,下标i应该是从0开始,最大为9,即应写为for(i=0;i<10;i++) */
{printf("a[%d]=",i);/* 输出第i个数a[i]= */
scanf("%d",&a[i]);}/* 接收用户输入的值 */
printf("\n");/* 用户输入完一个换一行 */
for(i=0;i<=9;i++)/* 前面一个数 */
{min=i;
for(j=i+1;j<10;j++)/* 后面一个数 */
if (a[min]>a[j]) min=j;/* 小值放在下标为min的元素里 */
temp=a[i];/* 以下三句为交换a[i]和a[min]的值,目的是小值放在前面 */
a[i]=a[min];
a[min]=temp;}
printf("\n从大到小排列是:\n");/* 输出提示信息 */
for(i=9;i>=0;i--)/* 因为经过上面的比较后,i的初值已经为9,所以是-- */
printf("%5d",a[i]);/* 按顺序逐个输出数组元素 */
printf("\n");}/* 输出一个元素就换一行 */