C语言与数据结构课程设计求指导

想要在自定义的add函数中实现循环输入,但是第二次输入会把第一次输入的数据覆盖掉,请问怎样实现循环输入并且将输入的数据全部输出呢,截图分别为定义的结构体类型、add函数的具体代码,以及引用的print()函数,恳请大家指点指点

你可以用结构体数组,给你一个例子:
#include <stdio.h>
//定义结构体Student,学生姓名不超过10个字符
//三门课程成绩均为百分制,只取整数;平均分带小数
struct Student
{
char name[11];
int A;
int B;
int C;
float aver;
};
int main()
{
struct Student stud[3];//定义结构体数组stud[3]
//对input()、average()、print()三个函数进行声明
void input(Student s[], int n);
void average(Student s[], int n);
void print(Student s[], int n);
//调用input()、average()、print()三个函数
input(stud,3);
average(stud,3);
print(stud,3);
return 0;
}
//定义输入n名学生的姓名、三门课程成绩的函数
void input(Student s[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf("请输入第 %d 名学生数据:\n",i+1);
printf("姓 名:"); scanf("%s",s[i].name);
printf("A课程成绩:"); scanf("%d",&(s[i].A));
printf("B课程成绩:"); scanf("%d",&(s[i].B));
printf("C课程成绩:"); scanf("%d",&(s[i].C));
printf("\n");
}
}
//定义计算n名学生三门课程总分的函数
void average(Student s[], int n)
{
int i;
for(i=0;i<n;i++)
s[i].aver=(s[i].A+s[i].B+s[i].C)/3.0f;
}
//定义输出n名学生的姓名、三门课程成绩、总分的函数
void print(Student s[], int n)
{
int i;
printf("\n学生成绩列表:\n");
for(i=0;i<n;i++)
{
printf("姓名:%s, ",s[i].name);
printf("A课程成绩:%d, ",s[i].A);
printf("B课程成绩:%d, ",s[i].B);
printf("C课程成绩:%d,",s[i].C);
printf("平均分:%f。\n",s[i].aver);
}
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-21
代码不要贴图,最好贴文本
第2个回答  2017-12-23
我能给个样本啊。
第3个回答  2017-12-23
要做的好也容易。