c语言试题描述 请你设计一个结构体类型,用于管理学生基本资料。学生基本资料包括如下成员: 1)学号,int 范围内的正整数。 2)姓名(不含空白符的字符串),不超过19个字符。 3)性别,char类型,依据值的不同,代表男或女(“M”代表男,‘F’代表女)。 4)年龄,int 范围内的正整数。 在主函数中,定义含有50个成员的结构体数组,手工输入N和N个学生的基本资料,并存储在结构体数组中。请你找出其中年龄大于等于20岁的学生,按照输入的次序输出其学号和姓名。 输入输入包含 N+1行: 第一行是正整数 N(1<=N<=50)。 第二行到第N+1行,每行均为某个学生的基本资料,每行四项数据,邻近两项用一个空格隔开。四项数据如下: 1)学号,int 范围内的正整数。 2)姓名(不含空白符的字符串),不超过19个字符。 3)性别,char类型,依据值的不同,代表男或女(M”代表男,F”代表女)。 4)年龄,int 范围内的正整数。 输出 输出若干行,为年龄大于等于20岁的学生的核心信息。每个学生核心信息占一行,核心信息是学号和姓名,用一个空格隔开。 输入示例 3 1 zhangsan M 21 2 lisi F 19 3 wangwu F 20 输出示例 l zhangsan 3 wangwu 数据范围 输入输出均为 int范围内的整数和字符串
时间: 2024-01-22 11:21:36 浏览: 27
```c
#include <stdio.h>
#include <string.h>
struct Student {
int id;
char name[20];
char gender;
int age;
};
int main() {
int n;
struct Student students[50];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d %s %c %d", &students[i].id, students[i].name, &students[i].gender, &students[i].age);
}
for (int i = 0; i < n; i++) {
if (students[i].age >= 20) {
printf("%d %s\n", students[i].id, students[i].name);
}
}
return 0;
}
```
相关问题
有一个结构体类型,包含两个成员:学生学号 和c语言课程成绩,其结构体类型定义如下: struct student } int num; float score; 编写程序,在主函数中输入10个学生的学号和成绩;并设计一个函数,计算并输出学生的平均成绩。
首先,我们需要定义`student`结构体,并在主函数中创建一个数组来存储这10个学生的数据。然后,我们会编写一个函数`calculate_average()`来计算平均成绩。以下是完整的代码示例:
```c
#include <stdio.h>
// 定义 student 结构体
struct student {
int num; // 学号
float score; // 成绩
};
// 函数声明,用于计算平均成绩
float calculate_average(struct student students[], int size);
int main() {
struct student student_array[10]; // 创建一个包含10个元素的学生数组
int i;
printf("请输入10个学生的学号和成绩:\n");
for (i = 0; i < 10; i++) {
printf("学生 %d 的学号: ", i + 1);
scanf("%d", &student_array[i].num); // 输入学号
printf("学生 %d 的成绩: ", i + 1);
scanf("%f", &student_array[i].score); // 输入成绩
}
// 调用函数计算平均成绩
float average_score = calculate_average(student_array, 10);
printf("10个学生的平均成绩为: %.2f\n", average_score);
return 0;
}
// 计算平均成绩的函数实现
float calculate_average(struct student students[], int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += students[i].score;
}
return sum / size;
}
```
在这个程序中,用户会被提示输入每个学生的学号和成绩,然后`main`函数会调用`calculate_average`函数来计算并打印出10个学生的平均成绩。
:有一个结构体类型,包含两个成员:学生学号和c语言课程成绩,其结构体类型定义如下: struct student { int num; float score; }; 编写程序,在主函数中输入10个学生的学号和成绩;并设计一个函数,计算并输出学生的平均成绩。
好的,首先我们定义了一个名为`student`的结构体,它有两个成员:`num`表示学号(整型)和`score`表示成绩(浮点型)。接下来,我们将创建一个数组来存储这10个学生的数据,并编写一个函数来计算平均成绩。
这是如何实现的:
```c
#include <stdio.h>
// 定义结构体
struct student {
int num; // 学号
float score; // 成绩
};
// 函数声明,计算并返回平均成绩
float calculate_average(struct student students[], int size);
int main() {
// 声明和初始化一个结构体数组
struct student student_array[10];
// 输入10个学生的学号和成绩
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &student_array[i].num);
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &student_array[i].score);
}
// 计算平均成绩并输出
float average_score = calculate_average(student_array, 10);
printf("10个学生的平均成绩为:%.2f\n", average_score);
return 0;
}
// 函数实现,计算平均成绩
float calculate_average(struct student students[], int size) {
float sum = 0;
for (int i = 0; i < size; i++) {
sum += students[i].score;
}
return sum / size;
}
```
在这个程序中,`calculate_average`函数接收一个学生的结构体数组和数组大小作为参数,遍历数组累加所有学生的成绩,然后除以学生数量得到平均分。在`main`函数里,我们先输入10个学生的学号和成绩,然后调用这个函数并显示结果。
阅读全文