第1个回答 2012-06-02
#include<stdio.h>
struct student
{
char name[20];
int xue;
char sex;
int age;
double cheng[4];
double ping;
}stu[1000];
int main()
{
int i,j,n;
double sum;
struct student item;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
sum=0.0;
scanf("%s %d %c %d",stu[i].name,&stu[i].xue,&stu[i].sex,&stu[i].age);
for(j=0;j<4;j++)
scanf("%lf",&stu[i].cheng[j]);
for(j=0;j<4;j++)
sum=sum+stu[i].cheng[j];
stu[i].ping=sum/4;
}
for(j=1;j<n;j++)
for(i=0;i<n;i++)
if(stu[i].ping<stu[i+1].ping)
{
item=stu[i];
stu[i]=stu[i+1];
stu[i+1]=item;
}
for(i=0;i<n;i++)
{
printf("%s %d %c %d ",stu[i].name,stu[i].xue,stu[i].sex,stu[i].age);
for(j=0;j<4;j++)
printf("%lf ",stu[i].cheng[j]);
printf("%lf ",stu[i].ping);
printf("\n");
}
return 0;
}
这个是用C写的,是我自己写的,你可以测试下,我的好像多个性别吧,用M代表男,W代表女,还有什么问的。可追问 ,希望是你的满意答案,谢谢
第2个回答 2011-03-07
#include<stdio.h>
#define N 30
struct stu
{ char name[20];
char sex;
int score1;
int score2;
int score3;
}s[N];
main()
{ int i;
for(i=0;i<N;i++)
{
printf("\nEnter No%d name\n",i+1);
scanf("%s",s[i].name);
do
{ printf("\nEnter sex M/F\n");
s[i].sex=getch();
}
while((s[i].sex!='F')&&(s[i].sex!='M'));
if(s[i].sex=='M')
{ printf("\nEnter his 3 score\n"); scanf("%d,%d,%d",&(s[i].score1),&(s[i].score2),&(s[i].score3));}
else
{ printf("\nEnter her3 score\n"); scanf("%d,%d,%d",&(s[i].score1),&(s[i].score2),&(s[i].score3));}
}
for(i=0;i<N;i++)
{
printf("name:%s\n",s[i].name);
printf("sex:%c\n",s[i].sex);
printf("score:%d,%d,%d",s[i].score1,s[i].score2,s[i].score3);
}
}