Description
对一维数组按照从小到大的顺序排序。程序定义函数sort()来实现数组a的排序。函数原型如下:
int sort(int a[], int n);
数组元素的输出调用PrintArr()。
Input
第一行输入一个整数n(1<=n<=10),表示数组有n个整数;第二行输入n个整数。
Output
输出占一行。对这n个整数数按照从小到大的顺序输出,数据之间用一个空格隔开。
Sample Input
6
6 5 1 2 3 4
Sample Output
1 2 3 4 5 6
格式错了 看不出来.................................
#include<stdio.h>
int sort(int a[], int n);
void PrintArr(int a[], int n);
int main()
{
int i,n;
scanf("%d",&n);
int a[n];
for(i=0 ; i<n ; i++)
scanf("%d",&a[i]);
sort(a,n);
PrintArr(a,n);
return 0;
}
int sort(int a[], int n)
{
int i,j,temp;
for(i=0 ; i<n-1 ; i++)
{
for(j=i+1 ; j<n ; j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
return 0;
}
void PrintArr(int a[], int n)
{
int m;
for(m=0 ; m<n ; m++)
printf("%d ",a[m]);
printf("\n");
}
应该是因为输出的时候最后一个数字之后不需要空格,输出函数改为如下:
void PrintArr(int a[], int n)另外数组的定义大小不能为变量,将int a[n];改为int a[20];
追问之前的题目要求过,但这个好像没说吧
追答有说数据之间用一个空格隔开,没有说最后的位置是数据之间
追问数组的定义大小不能为变量,但为什么能运行对 啊,是因为我没一直没有改变n的值吗?
追答那应该是与你的编译器有关系,正规的都是不能直接使用变量大小的,一般C++中也是用new关键字动态创建的。
追问用的是codeblock
追答我用vs2013那个地方就是报错的
本回答被提问者采纳