两道考研试题
数组已经按照从大到小的顺序排序,要删除重复元素,如下:
#include <stdio.h> #define M 20 main() { int a[M],i,j,n; clrscr(); for(i=0;i<M;i++) scanf("%d",&a[i]); n=i=M-1; while(i>0) { if(a[i]==a[i-1]) { for(j=n-1;j<=n;j++) a[n-1]=a[j]; n=n-1; } i=i-1; } for(i=0;i<=n;i++) { if(i%5==0) printf("\n"); printf("%3d",a[i]); } printf("\n"); }
结构体数组的输入,输出:
struct man { char name[20]; unsigned age; char sex[7]; }; main() { struct man person[10]; data_in(person); data_out(person); } data_in(p) struct man *p; { struct man *q=p+10; for(;p<q;p++) { printf("age;sex;name"); scanf("%u,%s",&p->age,p->sex); scanf("%s",p->name); } } data_out(p) struct man *p; { struct man *q=p+10; for(;p<q;p++) printf("%s;%u;%s\n",p->name,p->age,p->sex); }