在一个已经按照从小到大排好序的有序数组中插入某个指定元素

在一个已经按照从小到大排好序的有序数组{1 3 5 7 9}中插入某个指定元素(该元素由键盘输入),若该元素不存在则按照数组原先数据顺序将该元素插入到数组中,若该元素与数组中的元素重复,则输出该元素已经存在的信息。

从后往前循环数组。如果元素大于输入的值就把元素往后移
你题目的解答代码如下:

#include<stdio.h>
int main()
{
    int a[6] = {1,3,5,7,9};
    int i,n;
    scanf("%d", &n);
    for( i=4; i>=0; i-- )
    {
        if (a[i]==n)
        {
            printf("该元素已经存在");
            return 0;
        }
        if (a[i]<n)
            break;
        a[i+1] = a[i];
    }
    a[i+1] = n;
    for( i=0; i<6; i++ )
        printf("%d ", a[i]);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

#include "stdio.h"
int main()
{
    int a[6] = {1,3,5,7,9};
    int i,n,pos=-1;
    scanf("%d",&n);
    for(i=0;i<5;i++){
        if(n==a[i]){
            printf("数据已经存在\n");
            return 0;
        }
        if(n<a[i]){
            pos = i;
            break;
        }
    }
    if(pos==-1)
        pos = 5;
    for(i=5;i>pos;i--){
        a[i]=a[i-1];
    }
    a[pos] = n;
    
    for(i=0;i<6;i++)
        printf("%d\t",a[i]);
        
    return 0;
}