/***************************************
描述:用数组,函数,结构,循环等来实现
一个学员信息管理系统!
**************************************/
#include <stdio.h>
#define N 3
struct student
{
int no;
char name[20];
int score[N];
double ave;
};
void display(struct student a[], int i);
struct student input();
void main()
{
struct student a[50];
int i=0;
char ans='y';
printf("请输入学员信息:\n");
while(ans=='y'||ans=='Y')
{
a[i]=input();
i++;
printf("\n 您是否继续?(y or n) ");
fflush(stdin);
scanf("%c",&ans);
}
display(a,i);
}
struct student input()
{ struct student r;
double sum=0.0;
int j;
printf("\n学号:");
scanf("%d",&r.no); //接收用户输入学号
fflush(stdin);
printf("姓名:");
gets((r.name)); //接受用户输入姓名
fflush(stdin);
printf("三门成绩:\n");
for(j=0;j<N;j++) //接受用户输入的三门成绩
{
printf("成绩%d:",j+1);
fflush(stdin);
scanf("%d",&r.score[j]); // (接受数据要对应!~)
sum+=r.score[j];
}
r.ave=sum/3;
return r;
}
void display(struct student a[], int i)
{ int k;
printf("输入后的学员信息如下:\n\n");
printf("学号\t姓名\t\t平均成绩\n");
for(k=0;k<i;k++)
{
printf("%d\t%s\t\t%3.2f\n",a[k].no,a[k].name,a[k].ave); // 有另一种写法:&a[i].name[0] ( name的输出应用%s)
}
}
---------------------------------------以上只能实现某些功能-------------------------------------
>>>待续......
评论