c语言编程删除数组a中所有值为x的元素,输出执行删除前后的数组。

要求:数组a中共有10个元素,且通过初始化获得初值,删除数据x的值由键盘输入。

#include <stdio.h>
void main()
{
int i,n,k;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
printf("请输入要删除的数字:\n");
scanf("%d",&n);
printf("删除前的数组为:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");

printf("删除后的数组为:\n");
for(i=0;i<10;i++)
{
if(a[i] == n)
{
for(k=i;k<10;k++)
{
a[k] = a[k+1];
}
}
}
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-11-09
#include <stdio.h>
void main()
{
int i,n,k,m;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
printf("请输入要删除的数字:\n");
scanf("%d",&n);
printf("删除前的数组为:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");

printf("删除后的数组为:\n");
m=10;
for(i=0;i<10;i++)
{
if(a[i] == n)
{
m--;
for(k=i;k<10;k++)
{
a[k] = a[k+1];
}
}
}

for(i=0;i<m;i++)
printf("%d ",a[i]);
printf("\n");
}本回答被提问者和网友采纳

c语言编程:删除数组a中所有值为x的元素,输出执行删除前后的数组。
依次遍历数组,找到该元素后,数组后面所有元素前移,并且元素个数减一,最后重新输出该数组即可。参考代码:include <stdio.h>int main() {int n=10,i,j,x,a[10]={0,1,2,3,4,5,5,6,7,8};scanf("%d",&x);for(i=0;i<10;i++){if(a[i]==x){for(j=i;j+1<10;j++)a[j...

C语言编程,删除数组a中值为x的第一个元素。
int BitSearch(int a[], int x, int left, int right) { \/*在数组a的从left到right的区域内二分查找x第一次出现的位置,如果不存在返回-1*\/ int mid, i;while(left <= right) { mid = (left + right) \/ 2;if(a[mid] == x) break;if(a[mid] > x) right = mid - 1;i...

...把数组中所有的等于x的元素删除,然后输出数组中?
int main() { int a[12]= {2,5,6,5,3,8,5,2,9,0,4,4},x,i,j;scanf("%d",&x);for(j=0,i=0; i<12; i++) { if(a[i]!=x)a[j++]=a[i];} if(j==12) printf("del error");else for(i=0; i<j; i++) printf("%-2d",a[i]);} ...

...删除数组中与x值相同的所有元素,并输出删除后的数?
printf("\\nx=");scanf("%d",&x);for(i=j=0; i<n; i++)if(a[i]-x)a[j++]=a[i];printf("删除%d后的数组:\\n",x);for(i=0; i<j; i++)printf("%4d",a[i]);printf("\\n");return 0;}

C语言删除数组指定元素
C语言删除数组指定元素的源代码如下:include <stdio.h> main(){ char s[80],c;int j,k;printf("\\nEnter a string: ");gets(s);printf("\\nEnter a character: ");c=getchar( );for(j=k=0;s[j]!= '\\0';j++)if(s[j]!=c)s[k++]=s[j];s[k]= '\\0';printf("\\n%s\\...

在一维数组中删除值为x的元素(用初学的c语言)
假设x=3 int main(){ int i,j,s=0,a[5]={1,2,3,4,5},x=3;for(i=0;i<5;i++)if(a[i]==x){ s++;for(j=i;j<5-s;j++){ a[j]=a[j+1];} } for(i=0;i<5-s;i++)printf("%d ",a[i]);}

c语言跪求:一道题目要去除数组中元素
include <stdio.h>int main(){int i,x,n; bool a[100001]={0}; scanf("%d",&n); for(i=0;i<n;i++) {scanf("%d",&x); if(!a[x]) {a[x]=1; printf("%d ",x); } } printf("\\n"); return 0; } ...

C语言中怎样实现对数组数据的删除、修改?
int a,b;\\x0d\\x0a}node;\\x0d\\x0anode c[100];\\x0d\\x0aint n;\\x0d\\x0avoid print(){\\x0d\\x0a int i;\\x0d\\x0a printf("\\n当前数据:\\n");\\x0d\\x0a for(i=1;i<=n;i++){\\x0d\\x0a printf("第%d组:a=%d,b=%d\\n",i,c[i].a,c[i...

c语言,想删除数组重复的元素。。。只保留第一个重复的元素。。就是删 ...
int cout=0,i,j=0;char a[6]={'x','2','x','3','x','x'};for(i=0;i<6;i++){ if(a[i]=='x'){ cout++;if(cout<2){ a[j]=a[i];j++;} } else { a[j]=a[i];j++;} } printf("最后有X的个数为:%d\\n",cout);for(i=0;i<j;i++)printf("%c ",a...

...元素,删除该数组中的最大值,并输出删除前后的数组元素值
include<stdio.h> int main(){ int a[10]={0,1,2,3,4,5,6,7,8,9},temp;for(int i=0;i<10;i++)printf("%d",a[i]);for(int i=1;i<10;i++)if(a[i]>a[0]){ temp=a[i];a[i]=a[0];a[0]=temp;} printf("\\n%d",a[0]);return 0;} ...

相似回答