习题 9.3 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。

「爱情、让人受尽委屈。」 2022-05-28 02:48 310阅读 1赞

C程序设计(第四版) 谭浩强 习题9.3 个人设计

习题 9.3 编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。

代码块:

方法1:

  1. #include <stdio.h>
  2. struct student
  3. {
  4. int num;
  5. char name[10];
  6. float score[3];
  7. } stu[5];
  8. void print(struct student s[]);
  9. int main()
  10. {
  11. int i, j;
  12. for (i=0; i<5; i++){
  13. printf("Please enter No.%d student num, name, score: ", i+1);
  14. scanf("%d %s", &stu[i].num, stu[i].name);
  15. for (j=0; j<3; scanf("%f", &stu[i].score[j++]));
  16. }
  17. print(stu);
  18. return 0;
  19. }
  20. void print(struct student s[])
  21. {
  22. int i, j;
  23. for (i=0; i<5; printf("\n"), i++){
  24. printf("%d %-10s ", s[i].num, s[i].name);
  25. for (j=0; j<3; printf("%.2f ", s[i].score[j++]));
  26. }
  27. }

方法2:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. struct Student{
  4. int num;
  5. char name[20];
  6. float score[3];
  7. };
  8. void input(Student *st);
  9. void print(Student *st);
  10. int main()
  11. {
  12. Student *stu=(Student*)malloc(5*sizeof(Student));
  13. input(stu);
  14. print(stu);
  15. system("pause");
  16. return 0;
  17. }
  18. void input(Student *st)
  19. {
  20. int i, j;
  21. Student *p;
  22. for (p=st, i=0; p<st+5; p++, i++){
  23. printf("Please enter No.%d student info: ", i+1);
  24. scanf("%d %s", &p->num, p->name);
  25. for (j=0; j<3; scanf("%f", &p->score[j++]));
  26. }
  27. }
  28. void print(Student *st)
  29. {
  30. int i;
  31. Student *p;
  32. for (p=st, printf("Result:\n"); p<st+5; p++){
  33. printf("%d %7s ", p->num, p->name);
  34. for (i=0; i<3; printf("%.2f ", p->score[i++]));
  35. printf("\n");
  36. }
  37. }

发表评论

表情:
评论列表 (有 0 条评论,310人围观)

还没有评论,来说两句吧...

相关阅读