求求各位大佬了,这个怎么做
删除整数:假设整数数组a[10]中,存在与整数x相同的数据,其中数组a和x均为用户输入,则完成以下功能:(1)将数组a中与x相同的所有数据,除第一个之外,全部删除;如果只有一个(或没有)相同的数据,则保持数组a不变。
(2)输出删除后的数组a。
#include <stdio.h> int main( void ) { int a[10], x; const size_t length = sizeof(a)/sizeof(*a); for( size_t i=0; i!=length; ++i ) scanf( "%d", a+i ); scanf( "%d", &x ); size_t new_length = 0; for( size_t i=0,cnt=0; i!=length; ++i ) { cnt += a[i]==x; if( a[i]!=x || cnt==1 ) a[new_length++] = a[i]; } for( size_t i=0; i!=new_length; ++i ) printf( "%d%c", a[i], " \n"[i+1==new_length] ); }
#include <stdio.h> #define N 10 int main() { int i, j, x, a[N],flg; printf("Input %d numbers:", N); for (i = 0; i < N; i++) scanf("%d", &a[i]); printf("x="); scanf("%d", &x); for (i = j = 0, flg = 0; i < N; i++) if (a[i] - x) a[j++] = a[i]; else { if (flg == 0) a[j++] = a[i]; flg++; } printf("删除%d后的数组:\n", x); for (i = 0; i < j; i++) printf("%4d", a[i]); printf("\n"); return 0; }