#解答##c语言##错题#

c语言的题目,插入数据,按原顺序输出,不知道错在哪里,帮忙解答一下,谢谢

img

img

第10行的if操作完后要退出,在if操作中的最后加上break

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a[5]={1,4,6,8,0};
    int n,i,j,t,f;
    scanf("%d",&n);
    for(i=0;i<=4;i++){
        if(n<a[i]){
            t=a[i];
            a[i]=n;
            for(j=i+1;j<=4;j++){
                f=a[j];
                a[j]=t;
                t=f;
            }
            break;
        }
    }
    if(n>=a[3]){
        a[4]=n;
    }
    for(int i=0;i<=4;i++){
        printf("%d",a[i]);
    }
    return 0;
}

数组是递增序列,所以for循环中只能是i<4,不能等于4,因为初始只能是有4个元素,而不是5个

应该就是 tanjunming2020 说的那样了,其实这个是插入排序的一趟。