原题链接:[编程入门]结构体之成绩记录
解题思路:1.定义结构体变量,并以此变量定义一个二维数组。
2.先定义并输入二维数组的行数,之后再用正常的input和output输入输出即可。
3.输入输出的形参为指针类型(也可以认为是输入自己所定义的结构体变量的数组的首位)
4.每行是每个变量的内容是for循环一次的操作内容,而for要循环几次取决于列数
参考代码:
#include <stdio.h>
struct stu
{
char num[100];
char name[100];
int score[3];
};
void input(struct stu* a,int n);
void output(struct stu* a,int n);
int main(void)
{
int n;
scanf("%d",&n);
struct stu a[n];
input(a,n);
output(a,n);
return 0;
}
void input(struct stu * a,int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%s%s%d%d%d",&(a[i].num),&(a[i].name),&(a[i].score[0]),&(a[i].score[1]),&(a[i].score[2]));
}
}
void output(struct stu* a,int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%s,%s,%d,%d,%d\n",a[i].num,a[i].name,a[i].score[0],a[i].score[1],a[i].score[2]);
}
}0.0分
41 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include <stdio.h> #include <malloc.h> struct message{ char number[100]; char name[100]; int score[3]; }; void input(struct message * a, int n); void output(struct message * a, int n); int main(void) { int len; scanf("%d",&len); struct message * ptrr; ptrr = (struct message*)malloc(sizeof(struct message)*len); input(ptrr, len); output(ptrr, len); return 0; } void input(struct message * a, int n){ int i; for(i = 0; i < n; i++){ scanf("%s %s %d %d %d",a[i].number, a[i].name, &(a[i].score[0]),&(a[i].score[1]),&(a[i].score[2])); } } v#include<stdio.h> struct xs { char xh[10]; char xm[10]; int yw; int sx; int yy; }; void sr(xs sj[], int i); void dy(xs sj[], int i); int main(void) { int i; scanf("%d", &i); struct xs sj[100]; sr(sj, i); dy(sj, i); return 0; } void sr(xs sj[], int i) { int t; for (t = 0; t < i; t++) { scanf("%s %s %d %d %d", sj[t].xh, sj[t].xm, &sj[t].yw, &sj[t].sx, &sj[t].yy); } } void dy(xs sj[], int i) { int t; for (t = 0; t < i; t++) { printf("%s,%s,%d,%d,%d\n", sj[t].xh, sj[t].xm, sj[t].yw, sj[t].sx, sj[t].yy);}}为什么报错啊?#include <stdio.h> struct stu { char num[100]; char name[100]; int score[3]; }; void input(struct stu* a,int n); void output(struct stu* a,int n); int main(void) { int n; scanf("%d",&n); struct stu a[n]; input(a,n); output(a,n); return 0; } void input(struct stu * a,int n) { int i; for(i=0;i<n;i++) { scanf("%s%s%d%d%d",&(a[i].num),&(a[i].name),&(a[i].score[0]),&(a[i].score[1]),&(a[i].score[2])); } } void output(struct stu* a,int n) { int i; for(i=0;i<n;i++) { printf("%s,%s,%d,%d,%d\n",a[i].num,a[i].name,a