关于#c语言#的问题:我想给输入的10个数字按大小排序(相关搜索:c语言的)

我想给输入的10个数字按大小排序,但写出来的程序不知道哪里错了

img

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那里的换行的那个符已经删了