设计一个函数,对一个整数数组按升序进行排序(冒泡或选择排序等方法)。代码如下#include <stdio.h> #include <Windows.h> #include <math.h> int paixu(int n); int main() { int n; printf("输入整数个数为:"); scanf("%d", &n); paixu(n); system("pause"); } int paixu(int n) { int i,j; int a[n]; for(i=0; i<n; i++) { scanf("%d",&a[i]); } for (i=0; i<n-1; i++) { for (j=0; j<n-1-i; j++) { if (a[j]>a[j+1]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } printf("排序后:"); for(i=0; i<n; i++) { printf("%d ",a[i]); } return 0; }请修改并使其执行正确
时间: 2024-03-10 10:50:53 浏览: 64
代码看起来没什么问题,只需要注意两点:
1. 在使用变长数组时,需要使用支持该特性的编译器,比如gcc,而不是Visual Studio等。
2. 在调用paixu函数时,需要将paixu函数的返回值赋给一个变量或直接使用printf输出paixu函数的返回值。
修改后的代码如下:
```c
#include <stdio.h>
int paixu(int n);
int main() {
int n;
printf("输入整数个数为:");
scanf("%d", &n);
paixu(n);
return 0;
}
int paixu(int n) {
int i,j;
int a[n];
printf("输入%d个整数:", n);
for(i=0; i<n; i++) {
scanf("%d",&a[i]);
}
for (i=0; i<n-1; i++) {
for (j=0; j<n-1-i; j++) {
if (a[j]>a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
printf("排序后:");
for(i=0; i<n; i++) {
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
```
阅读全文