解题思路:
1、使用结构体指针存储学生信息
2、输入数据长度后使用malloc分配存储空间
注意事项:
参考代码:
#include<stdio.h> #include<malloc.h> typedef struct _student_info_ { char s_id[16]; //学号 char s_name[32]; //姓名 int s_score[3]; //三科成绩 }student_info; void input(student_info *L) { scanf("%s %s %d %d %d", L->s_id, L->s_name, &(L->s_score[0]), &(L->s_score[1]), &(L->s_score[2])); } void print(student_info *L) { printf("%s,%s,%d,%d,%d\n", L->s_id, L->s_name, L->s_score[0], L->s_score[1], L->s_score[2]); } int main() { student_info *list; int n = 0, i = 0; scanf("%d", &n); while(getchar() != '\n') continue; if(n > 0 && n < 100) list = (student_info *)malloc(sizeof(student_info)*n); else return 0; for(i = 0; i < n; i++) { input(&list[i]); //一行一行获取,忽略一行多余的数据 while(getchar() != '\n') continue; } for(i = 0; i < n; i++) { print(&list[i]); } free(list); return 0; }
0.0分
60 人评分
#include<stdio.h> #define M 100 struct stu { char num[M]; char name[M]; int score[3]; } stu1[M]; int input(struct stu stu1[],int N) { int i; for(i=0; i<N; i++) scanf("%s%s%d%d%d",&stu1[i].num,&stu1[i].name,&stu1[i].score[0],&stu1[i].score[1],&stu1[i].score[2]); return 0; } int output(struct stu stu1[],int N) { int i; for(i=0; i<N; i++) printf("%s,%s,%d,%d,%d\n",stu1[i].num,stu1[i].name,stu1[i].score[0],stu1[i].score[1],stu1[i].score[2]); return 0; } int main() { int N; scanf("%d",&N); input(stu1,N); output(stu1,N); return
#include <stdio.h>、 struct student { char num[10]; char name[20]; int w,x,y; }; void input(struct student *d,int n); void print(struct student *s,int n); int main() { struct student *p; int n; scanf("%d",&n); p=(struct student *)malloc(n*sizeof(struct student)); input(p,n); print(p,n); free(p); return 0; } void input(struct student *d,int n) { int i; for(i=0;i<n;i++) { scanf("%s %s %d %d %d",d[i].num,d[i].name,&d[i].w,&d[i].x,&d[i].y); } } void print(struct student *s,int n) { int i; for(i=0;i<n;i++) { printf("%s,%s,%d,%d,%d\n",s[i].num,s[i].name,s[i].w,s[i].x,s[i].y); }
核弹头 2018-12-27 20:36:02 |
感觉我的做法还是有点麻烦大佬有什么改进意见没
#include<stdio.h> int main() { int n, i; struct student { char num[22]; char name[22]; int p1, p2, p3; }; struct student stu[33]; scanf_s("%d", &n); for (i = 0; i < n; i ++ ) { scanf_s("%s%c%d%d%d", &stu[i].num, &stu[i].name, &stu[i].p1, &stu[i].p2, &stu[i].p3); } for (i = 0; i < n; i++) { printf("%s,%c,%d,%d,%d\n", stu[i].num, stu[i].name, stu[i].p1, stu[i].p2, stu[i].p3); } } 谁帮我看看问题在哪?谢了!
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:572 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:572 |
字符串的输入输出处理 (C语言代码)浏览:922 |
【蟠桃记】 (C语言代码)浏览:664 |
WU-输出正反三角形 (C++代码)浏览:1017 |
【金明的预算方案】 (C++代码)浏览:837 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:587 |
Cylinder (C语言描述,蓝桥杯)浏览:1247 |
A+B for Input-Output Practice (III) (C语言代码)浏览:564 |
Tom数 (C语言代码)浏览:492 |
jjstudyc 2019-03-12 09:48:51 |
函数里面的stu1和 外层的stu1 可以互相传递信息??