简单的C语言结构体问题,输出3个数中居中的数(在线等,

要用到结构体,数组

题目是
自行编写如下程序:设有三个人的姓名和年龄存在数组中,输出三人中年龄居中者的姓名和年龄。

----------------------------
顺便问一下怎么调用结构体?我编写的无法执行T,T
根据此题代码
#define N 5
struct student
{ char num[6];
char name[8];
int score[4];
float avr;
}stu[10];

#include "stdio.h"
main( )
{ int i,j,max,maxi,sum;
float average;
for(i=0;i<N;i++)
{ printf("\n input scores of student:%d\n", i+1);
printf("No:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{ printf("score%d:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average=0;
max=0;
maxi=0;
for(i=0;i<N;i++)
{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
stu[i].avr=sum/3.0;
average+=stu[i].avr;
if (sum>max)
{max=sum;
maxi=i;} }
average/=N;
printf("No. name score1 score2 score3 average\n");
for(i=0;i<N;i++)
{ printf("%5s%10s",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%9d",stu[i].score[j]);
printf("%8.2f\n",stu[i].avr);
}
printf("average=%6.2f\n",average);
printf("the highest score is:%s,score total:%d",stu[maxi].name,max);
}
最新回答
守望

2024-11-29 12:39:43

#include "stdio.h"
#define N 3
struct person{
char name[20];
int age;
}person[N];
void main()
{
int i;
printf("please input peoele's names and ages:\n");
for(i=0;i<=2;i++)
scanf("%s%d",person[i].name,&person[i].age);
if((person[0].age-person[1].age)*(person[0].age-person[2].age)<0)
printf("%s\t%d\n",person[0].name,person[0].age);
if((person[1].age-person[2].age)*(person[1].age-person[0].age)<0)
printf("%s\t%d\n",person[1].name,person[1].age);
if((person[2].age-person[0].age)*(person[2].age-person[1].age)<0)
printf("%s\t%d\n",person[2].name,person[2].age);
}
絮雨羽

2024-11-29 10:28:20

typedef struct person{
char name[20];
int age;
};
person a[3] ; //定义。你需要自己给它们赋值

调用是这样。

a[1].name
a[1].age