#include<stdio.h> int W(int a[10]); int W(int a[10]) { int i,j,t; for(i=0;i<10;i++) for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } int main() { int i; int a[10]; printf("请输入10个数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); W(a); printf("请输入10个数:"); for(i=0;i<10;i++) printf("%d",a[i]); return 0; }这段代码有什么错误
时间: 2024-01-23 22:04:17 浏览: 47
SeqList.h #include <stdio.h> //包含标准输入输出流的头文件 #include <assert.h
这段代码中有两个问题:
1. 函数W的返回值类型应该为void。因为该函数是对传入的数组进行排序,而不需要返回任何值。
2. 在主函数中第二个输入提示语中,应该为“请输入10个数:”而不是“请输入10个数:”。
以下是修改后的代码:
```c
#include <stdio.h>
void W(int a[10]) {
int i, j, t;
for(i = 0; i < 10; i++)
for(j = 0; j < 9; j++)
for(i = 0; i < 9 - j; i++)
if(a[i] > a[i + 1]) {
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
}
int main() {
int i;
int a[10];
printf("请输入10个数:");
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);
W(a);
printf("排序后的结果为:");
for(i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
```
希望对你有所帮助。
阅读全文