C语言与数据结构课程设计求指导
想要在自定义的add函数中实现循环输入,但是第二次输入会把第一次输入的数据覆盖掉,请问怎样实现循环输入并且将输入的数据全部输出呢,截图分别为定义的结构体类型、add函数的...
想要在自定义的add函数中实现循环输入,但是第二次输入会把第一次输入的数据覆盖掉,请问怎样实现循环输入并且将输入的数据全部输出呢,截图分别为定义的结构体类型、add函数的具体代码,以及引用的print()函数,恳请大家指点指点
展开
4个回答
展开全部
你可以用结构体数组,给你一个例子:
#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");
}
#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");
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
代码不要贴图,最好贴文本
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我能给个样本啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询