问题描述
给定一个整数序列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;
}
(有用请采纳)
#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]);
}