解题思路: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分
52 人评分
#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
a[i]的num和name不需要去地址符号!!!
6 比要申请动态内存的简单多了
Euclid233 2022-04-25 16:27:23 |
但貌似结构数组里不能用变量 只能用常量
Euclid233 2022-04-25 16:27:45 |
定义的时候
dotcpp0586360 2022-08-14 16:02:57 |
确实不能运行