哐哐蜜柑614 2021-12-02 11:14 采纳率: 100%
浏览 45
已结题

删除数组中的元素 怎么改

问题描述
给定一个整数序列a1,a2,...,an,删除序列中所有值为m的元素。

要求:

1、用数组。

2、将值为m的数组元素从数组中删除,而不是简单的不输出m。

输入
输入有3行,

第一行是一个整数n,表示序列长度为n(0<n<100)。

第二行有n个整数,中间用空格分开。

第三行是一个整数m。

输出
在单独一行中输出删除元素后序列。每个整数后面跟一个空格。

输入样列
7
1 2 3 4 5 3 6
3
输出样例
1 2 4 5 6

#include<stdio.h>
int main()
{
int n,m,i,j;
scanf("%d",&n);
int a[n];
int x;
for(i=1;i<=n;i++){
m=n;
scanf("%d",&a[n]);
}
scanf("%d",&x);
for(i=1;i<=n;i++){
if(x==a[i]) m--;
}
int b[m];
for(i=1;i<=n;j++){
for(j=1;j<=m;j++){
while(a[i]!=x){
b[j]=a[i];
}
}
}
for(j=i;j<=m;j++){
printf("%d ",b[j]);
}
return 0;
}

展开全部

  • 写回答

1条回答 默认 最新

  • 索利亚噶通 2021-12-02 11:33
    关注

    (有用请采纳)

    
    #include<stdio.h>
    
    
    int main(){
        int n, m;         // 整数n, 需要删除的数 
        scanf("%d", &n);
        int nums[n];   // n个数
        for (int i = 0; i < n; i++)
            scanf("%d", &nums[i]);
        scanf("%d", &m);
        
        int i, j;
        j = 0;
        for(i = 0; i < n; i++){         // 删除m 
            if (nums[i] != m)
                nums[j++] = nums[i];
        }
        
        for (i = 0; i < j; i++)        //输出 
            printf("%d ", nums[i]);
         
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 12月9日
  • 已采纳回答 12月2日
  • 创建了问题 12月2日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部