求解这道C语言编程题 5

第二题,谢谢... 第二题,谢谢 展开
 我来答
百度网友08be24b
2015-05-07 · TA获得超过118个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:108万
展开全部
void main(){
    int a[100]={23,45,60,67,88};
    int input;
    int idx = -1;
    int len = 5;
    while (len<=100){
        printf("请输入一个正整数:");
        scanf("%d",&input);
        if(input < 0){
            break;
        }
        for(int i=0;i<len;i++){
            if(input == a[i]){
                idx = i;
                break;
            }
        }
        if (idx != -1){
            for(int j=idx;j<len-1;j++){
                a[j] = a[j+1];
            }
            len -= 1;
        } else {
            bool isNumMax=true;
            if(len == 100){
                printf("数组已达到%d个,不能再添加!\n",len);
                continue;
            }
            for (int j=0;j<len;j++){
                if(a[j]>input){
                    for(int k=len-1;k>=j;k--){
                        a[k+1] = a[k];
                    }
                    a[j] = input;
                    len += 1;
                    isNumMax = false;
                    break;
                } 
            }
            if (isNumMax){
                a[len] = input;
                len += 1;
            }
        }
        idx = -1;
        printf("元素个数为:%d\n",len);
        for(int s=0;s<len;s++){
            printf("%d ",a[s]);
        }
        printf("\n");
    }
}
这个题我之前回答过,改了下搬过来了,望采纳!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式