请问:c语言中的数组删数会吗?

Description
在给定的数组中删除数
Input
多组测试,每组第一行输入1个整数n(n<20),然后是n个整数第二行输入1个整数m
Output
删除在第一行的n个整数中的数字m(多个的话都要删除),然后按照顺序输出剩下的数,
Sample Input
5 1 2 3 4 3
3

Sample Output
1 2 4

把输入的第一个数保存到n中,剩下的保存到一个数组num[]里。
新建个temp[]数组,存放剩下的数。打印时打印temp[]数组就可以了。
以下给出算法,其余的自己写吧。
int i=j=0;
while(i<n)
{
if(num[i] != m)

{
temp[j]=num[i];
j++;
}

i++;
}追问

能不能补全呀!

追答

给你写了一下,因为你要一行全部输入所有数字,所以用gets来获取输入流,然后程序里对其进行处理。代码已经验证过了,可以正确运行。其中没有加防错机制。

#include
#include

int main(void)
{
int i=0,j=0;
char n='0',m='0';
char input[100],num[50];

printf("请按照格式输入:");
gets(input);
printf("请按照要删除的数字:");
m=getchar();

while(n<input[0]) //
{
if(input[i+2] != m)
{

num[j] = input[i+2];
j++;
}
i+=2;
n++;
}

for(i=0;i<j;i++)
{
printf("%c ",num[i]);
// putchar(' ');
}

system("pause");
return 0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答