C语言:利用指向结构体的指针变量处理5名学生的信息,并分别使用三种方式输出

阅读: 评论:0

C语言:利用指向结构体的指针变量处理5名学生的信息,并分别使用三种方式输出

C语言:利用指向结构体的指针变量处理5名学生的信息,并分别使用三种方式输出

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

利用指向结构体的指针变量处理5名学生的信息。(提示:定义一个学生信息的结构体,包括学号、姓名、一门课程的成绩;定义一个结构体数组并赋初值)
要求分别使用三种方式输出5名学生的信息,即每名学生的信息都输出3次,输出方式分别为:
a. 结构体变量.成员变量
b. (*结构体指针变量).成员变量
c. 结构体指针变量 -> 成员变量

参考代码

#include "stdio.h"int swap(int a[2][5]){int t, i, j;for(i=0; i<4; i++){for(j=0; j<4-i; j++){if(a[0][j] < a[0][j+1]){t = a[0][j];a[0][j] = a[0][j+1];a[0][j+1] = t;t = a[1][j];a[1][j] = a[1][j+1];a[1][j+1] = t;}}}return a[2][5];
}void main(){int i, j, tmp[2][5], t;struct Student{char id[10], name[10];int subject[2], sum, rank;double average;}stu[5]={{"001", "Bob", 88, 79, 0, 0, 0},{"002", "Sam", 66, 88, 0, 0, 0},{"003", "Tom", 59, 59, 0, 0, 0},{"004", "Jerry", 86, 78, 0, 0, 0},{"005", "Amy", 98, 96, 0, 0, 0}}, *st;for(i=0; i<5; i++){for(j=0; j<2; j++)stu[i].sum += stu[i].subject[j];stu[i].average = (double)(stu[i].sum) / 2.0;}for(i=0; i<5; i++){tmp[0][i] = stu[i].sum;tmp[1][i] = i;}tmp[2][5] = swap(tmp);for(i=0; i<5; i++)stu[tmp[1][i]].rank = i+1;printf("IDtNametSub1tSub2tSUMtAvg.tRankn");printf("-----------------------------------------------------n");for(i=0; i<5; i++)printf("%st%st%dt%dt%dt%.2ft%dn",stu[i].id,stu[i].name,stu[i].subject[0],stu[i].subject[1],stu[i].sum,stu[i].average,stu[i].rank);printf("nn");printf("IDtNametSub1tSub2tSUMtAvg.tRankn");printf("-----------------------------------------------------n");st = &stu[0];for(i=0; i<5; i++){printf("%st%st%dt%dt%dt%.2ft%dn",stu[i].id,stu[i].name,stu[i].subject[0],stu[i].subject[1],stu[i].sum,stu[i].average,stu[i].rank);st++;}printf("nn");printf("IDtNametSub1tSub2tSUMtAvg.tRankn");printf("-----------------------------------------------------n");st = &stu[0];for(i=0; i<5; i++){printf("%st%st%dt%dt%dt%.2ft%dn",st -> id,st -> name,st -> subject[0],st -> subject[1],st -> sum,st -> average,st -> rank);st++;}
}

运行效果

ID      Name    Sub1    Sub2    SUM     Avg.    Rank
-----------------------------------------------------
001     Bob     88      79      167     83.50   2
002     Sam     66      88      154     77.00   4
003     Tom     59      59      118     59.00   5
004     Jerry   86      78      164     82.00   3
005     Amy     98      96      194     97.00   1ID      Name    Sub1    Sub2    SUM     Avg.    Rank
-----------------------------------------------------
001     Bob     88      79      167     83.50   2
002     Sam     66      88      154     77.00   4
003     Tom     59      59      118     59.00   5
004     Jerry   86      78      164     82.00   3
005     Amy     98      96      194     97.00   1ID      Name    Sub1    Sub2    SUM     Avg.    Rank
-----------------------------------------------------
001     Bob     88      79      167     83.50   2
002     Sam     66      88      154     77.00   4
003     Tom     59      59      118     59.00   5
004     Jerry   86      78      164     82.00   3
005     Amy     98      96      194     97.00   1

本文发布于:2024-02-04 08:26:18,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170703073253948.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:三种   指针   变量   语言   结构
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23