输入格式:
输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。
输入样例:
4
5 1 7 6
输出样例:
7 6 5 1
这题我开始写完了就是一直报格式错误,后来我把空格换成+号,再运行一下就很快明白了
#include<stdio.h>
int main()
{
int n;
scanf("%d\n",&n);
//录入数组
int i;
int arr[n];
for(i=0;i<=n-1;i++)
{
scanf("%d",&arr[i]);
}
for(int x=1;x<=n-1;x++)
{
int temp;
for(i=x;i<=n-1;i++)
{
if(arr[i]>arr[x-1])
{
temp = arr[x-1];
arr[x-1] = arr[i];
arr[i] = temp;
}
}
}
//打印 ,这里就很奇葩,你把空格换成+号或者其他符号就明白为啥要先输出arr[0]了
printf("%d", arr[0]);
for(i=1; i<n; i++)
printf(" %d", arr[i]);
return 0;
}
//找打数组里最大的那个,并将其放到最前面
/*
int temp;
for(i=1;i<=n-1;i++)
{
if(arr[i]>arr[0])
{
temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
}
}
*/
//再来一遍
/*
int temp2;
for(i=2;i<=n-1;i++)
{
if(arr[i]>arr[1])
{
temp = arr[1];
arr[1] = arr[i];
arr[i] = temp2;
}
}
*/
错误写法一(写在后):

运行结果:

错误写法二(写在前):

运行结果:

版权声明:本文为zhengzhongz原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。