我想给输入的10个数字按大小排序,但写出来的程序不知道哪里错了
for (i = 0; i <= 9 - j; i++)
->
for (i = 0; i < 9 - j; i++)
【以下回答由 GPT 生成】
在你的代码中,出现了一个错误。在第二个for循环中,你的内层循环条件是j<9-i
,而不是j<9-i-1
。这样会使得内层循环执行过头,导致数组越界访问。
以下是修改后的代码:
#include<stdio.h>
int main(){
int f[10];
for(int i=0;i<10;i++){
scanf("%d",&f[i]);
}
for(int i=0;i<9;i++){
for(int j=0;j<9-i-1;j++){ // 修改循环条件
if(f[j]>f[j+1]){
int t=f[j];
f[j]=f[j+1];
f[j+1]=t;
}
}
}
for(int i=0;i<10;i++){
printf("%d\n",f[i]);
}
}
通过以上修改,你的代码应该可以正确地对输入的10个数字进行排序了。
【相关推荐】
我的scanf那里的换行的那个符已经删了