帮忙解决一道c语言题目

Description
在给定的数组中删除一个数
Input
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数 第二行输入1个整数m
Output
删除在第一行的n个整数中第一次出现数字m并删除,然后按照顺序输出剩下的数, 最后一个数后面无空格
Sample Input
4 1 2 3 4
3
Sample Output
1 2 4
HINT

m有可能在原数组中找不到,找不到则输出原数组

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

追问

这可以做到在1 2 3 4中删除4的时候,输出的3后没有空格吗

追答

已经是这样的了。

追问

我要的是只删除第一次出现的这个数的,比如说这个只删除第一个3,后面的3都要保留

温馨提示:内容为网友见解,仅供参考
无其他回答

帮忙解答一道C语言选择题
选项C:typedef struct student s;是将struct student定义为类型s,和第一部分的功能是类似的,只是类型名称不同而已,所以C也是对的.

一道C语言题目,看图~大神帮忙解答下吧!急急急急急!!在线等
答案是D 在C语言中数组赋值可以如A,那样,【】里面定义了长度5{}中有最大不超过5个值,则赋值成功 B在5个数值之内所以也是正确的 答案C,就是另外中赋值方法,在【】中不定义长度,因此数组a[]的实际长度取决于{}中的值的数量,也就是说在C答案中有5个0作为数值,因此C答案中的a[]的实际...

一道C语言很简单的题目,懂C语言的进来帮忙解下
首先要知道? :这是一个三目运算符,如 (表达式)? x : y, 意思是说如果表达式是正确的,那么就选择x,如果错误的就选择y。那我们看这里,可以分成三部分(a++<b) ? (a++):(c<d?a++:d)。而后面的(c<d?a++:d)又可以分成三部分(c<d) ? (a++):(d)。我们先看第一个式子...

C语言的一道题不会做了,求大神帮一下
第一题: a=4,b=8, 所以 (b==a) 为假,假就是 0,c= (b==a); c 得 0。语句中 a,b 数值 未发生过变化,保持初始值 a=4,b=8。所以输出 a,b,c 印出: 4,8,0 第二题:输入58,a=58;a>50 的条件成立,输出a值,印58 a>40 的条件成立,输出a值,印58 a>...

二级C语言的一道题,帮忙解答一下!
因为b是全局的,一变之后所有都变,给你讲10怎么出来的你就明白了 当i=2时候i,a为3,进入fun,3+2=5,b的值变为了5,然后回来有个b=fun(&a[i])+b;,你已看到,fun返回值为5,b的值也为5,相加为10

一道c语言题目 求大神指点下算法?
根据题意,随机生成红绿蓝球任意个数,并任意顺序排列。这里采用随机数实现。统计按红绿蓝顺序排列最少交换次数,我的思路是:第一步:循环将最后一个红色球与最靠前的其它两色球(并且满足位置在红球之前)交换。第二步:循环将最后一个绿球与最靠前的蓝球(必须在绿球之前)交换。include <stdio.h> ...

帮我这C语言的菜鸟解决一道题行不
void main(){ float s=0.0;while(n){ s += func(n--);} } float func(int n){ int n1=n;float s1=0.0;while(n1){ s1 += n1--;} return s1\/n;}

c语言大神快来帮小弟解决一道题 题目描述 一个笼子里面关了鸡和兔子...
include <iostream>using namespace std;int main(){ int n,m;\/\/n 控制总的循环次数 m为输入的脚数int i,j;\/\/循环变量int s;\/\/判断是否能够正确的算出鸡和兔int max,min;\/\/最大的动物树 最小的动物数cin>>n;\/\/输入循环次数while(n--){s=0;cin>>m;max=0;min=m;for(i=1;i...

一道C语言的运算题,题目如图,请详细解答一下,谢谢!
加0.5是为了算四舍五入的,这一点是首先要知道的。=是赋值语句,要从右往左看,因此B首先是将n小数点后移2位,方便对它进行四舍五入。并将最后的值赋入m,m类型为int整型,得到一个整数,再将m\/100.0 浮点型保留小数,得到2位。由此B对。A是保留3位小数 C和D明显错误。

C语言的一道题 求助求助
一、统计输入的字符个数 同学们在学习C语言课程中,经常会遇到一道题,就是要求你写一个C程序,这个C程序能够读取你从键盘上输入的字符,并且统计其中的字符个数,最后输出总的字符个数并且把这些输入的字符再输出来。不少同学遇到这道题没啥思路,不知该如何上手。其实需要按照分解题目、每个分解的...

相似回答