天天看点

两道考研试题

数组已经按照从大到小的顺序排序,要删除重复元素,如下:

#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);
}