原题链接:[编程入门]结构体之成绩记录
解题思路:
注意事项:
参考代码:
/*
t
*/
#include<stdio.h>
#define N 100
struct student
{
char num[10];
char name[10];
int score[3];
};
void input(struct student *stu,int n)//把结构体变量正常对待即可
{
int i;
for(i = 0; i < n; i++)
scanf("%s%s%d%d%d",stu[i].num,stu[i].name,stu[i].score,stu[i].score+1,stu[i].score+2);
//stu[i].score是score数组的首地址
}
void print(struct student *stu,int n)
{
int i;
for(i = 0; i < n; i++)
printf("%s,%s,%d,%d,%d\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
int main()
{
struct student stu[N];
int n;
scanf("%d",&n);
input(stu,n);
print(stu,n);
return 0;
}0.0分
13 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
void input(struct Stu *stu,int n){ for(int i=0;i<n;i++){ scanf("%s%s%d%d%d",stu[i].id,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3); } } 这里不是定义了一个结构体指针吗? 为什么下面的scanf可以直接变成结构体数组?#include<stdio.h> struct Stu { char id[10]; char name[10]; int s1; int s2; int s3; }; void input(struct Stu *stu,int n){ for(int i=0;i<n;i++){ scanf("%s%s%d%d%d",stu[i].id,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3); } } void output(struct Stu *stu,int n){ for(int i=0;i<n;i++){ printf("%s %s %d %d %d\n",stu[i].id,stu[i].name,stu[i].s1,stu[i].s2,stu[i].s3); } } int main(){ int n; scanf("%d",&n); struct Stu stu[100]; input(stu,n); output(stu,n); return 0; } 为什么不对啊