C语言-结构体数组练习题
练习1:
输入一个班级的学生信息(包含id 、name 、gender、score), 并把学习成绩超过全班平均成绩的学生找出来,输出这部分学生的姓名和成绩。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define MAX 100
typedef struct Stu {
int id;
char name[10];
char gender[8];
int score;
}Stu;
int main() {
int num_stu;//学生个数
struct Stu stu1[MAX];
int i = 0;
int sum=0;
double avg ;
printf("请输入学生数量:");
scanf(" %d", &num_stu);
for (int i = 0;i < num_stu;i++) {
printf("请输入学生的ID、姓名、性别、分数:");
scanf(" %d %9s %7s %d", &stu1[i].id, stu1[i].name, &stu1[i].gender, &stu1[i].score);
sum=sum+stu1[i].score;
}
avg = (double)(sum / num_stu);
printf("平均成绩:%.2lf\n", avg);
for (int i = 0;i < num_stu;i++) {
if (stu1[i].score > avg) {
printf("超过平均成绩的学生姓名:%s 成绩:%d\n", stu1[i].name, stu1[i].score);
}
}
return 0;
}
练习2:
编写一个统计选票的系统,根据先后输入的侯选人姓名,统计各人的得票数。
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
#define N 3
struct xuanpiao {
char name[10];
int piao;
};
int main() {
struct xuanpiao per[3] = { {"张三",0},{"李四",0},{"王五",0} };
char toupiao[10];
printf("请选择您要投票的人(张三、李四、王五)\n");
for (int i = 0;i < 3;i++) {//i<3 投票人数
scanf(" %s",toupiao);
for (int j = 0;j < 3;j++) {
if (strcmp(toupiao, per[j].name) == 0) {
per[j].piao++;
break;
}
}
}
printf("投票结果:\n");
for (int j = 0;j < 3;j++) {
printf("%9s %d ", per[j].name, per[j].piao);
}
return 0;
}
练习3:
(1)编程创建一个BOX结构体,在其中定义三个成员表示一个立方体的长、宽和高,长宽高可以通过控制参输入。
(2)定义一个函数获取立方体的体积(volume)。
(3)创建一个结构,打印给定尺寸的立方体的体积。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct BOX {
double chang;
double kuan;
double gao;
};
double getvolume(struct BOX a);
int main() {struct BOX a;//一个立方体
printf("请输入立方体的长、宽、高\n");
scanf(" %lf %lf %lf", &a.chang, &a.kuan, &a.gao);
double a1 = getvolume(a);
printf("volume=%.2lf", a1);return 0;
}
double getvolume(struct BOX a) {
return a.chang * a.kuan * a.gao;
}