c语言用字符数组存储学号
时间: 2024-01-10 07:04:46 浏览: 42
可以使用如下代码来用字符数组存储学号:
```c
#include <stdio.h>
int main() {
char student_id[10]; // 定义字符数组
printf("请输入学号:");
scanf("%s", student_id); // 从标准输入中读取学号
printf("您输入的学号是:%s\n", student_id); // 输出学号
return 0;
}
```
在这个例子中,我们定义了一个长度为10的字符数组 `student_id` 来存储学号。然后使用 `scanf()` 函数从标准输入中读取学号,并将其存储到 `student_id` 数组中。最后使用 `printf()` 函数输出学号。注意,`scanf()` 函数的 `%s` 格式说明符可以直接读取一个字符串,并将其存储到字符数组中。
相关问题
利用c语言用结构体数组录取学生信息:学号,名字,各科成绩,平均分,最低和最高分
可以使用如下的C语言代码来实现:
```c
#include <stdio.h>
#include <string.h>
#define NUM_STUDENTS 3
#define NUM_SUBJECTS 3
struct student {
int id;
char name[20];
int scores[NUM_SUBJECTS];
float average;
int min_score;
int max_score;
};
int main()
{
struct student students[NUM_STUDENTS];
//录入学生信息
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &students[i].id);
printf("请输入第%d个学生的名字:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的各科成绩:\n", i + 1);
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("第%d门课成绩:", j + 1);
scanf("%d", &students[i].scores[j]);
}
}
//计算每个学生的平均分、最低分和最高分
for (int i = 0; i < NUM_STUDENTS; i++) {
//计算平均分
float total_score = 0;
for (int j = 0; j < NUM_SUBJECTS; j++) {
total_score += students[i].scores[j];
}
students[i].average = total_score / NUM_SUBJECTS;
//计算最低分和最高分
students[i].min_score = students[i].scores[0];
students[i].max_score = students[i].scores[0];
for (int j = 1; j < NUM_SUBJECTS; j++) {
if (students[i].scores[j] < students[i].min_score) {
students[i].min_score = students[i].scores[j];
}
if (students[i].scores[j] > students[i].max_score) {
students[i].max_score = students[i].scores[j];
}
}
}
//输出学生信息
printf("\n学生信息如下:\n");
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均分\t最低分\t最高分\n");
for (int i = 0; i < NUM_STUDENTS; i++) {
printf("%d\t%s\t", students[i].id, students[i].name);
for (int j = 0; j < NUM_SUBJECTS; j++) {
printf("%d\t", students[i].scores[j]);
}
printf("%.2f\t%d\t%d\n", students[i].average, students[i].min_score, students[i].max_score);
}
return 0;
}
```
该程序使用了一个名为`student`的结构体来存储每个学生的信息,其中包括了学号、名字、各科成绩、平均分、最低分和最高分。程序首先定义了一个`students`数组来存储每个学生的信息,然后通过循环逐一录入学生信息、计算每个学生的平均分、最低分和最高分,并最终输出所有学生的信息。
需要注意的是,在输入学生名字时,使用了`scanf("%s", students[i].name)`来读入字符串,这里没有使用`&`符号,是因为`name`是一个字符数组,它本身就代表了字符数组的首地址,无需再取地址。同时,在输出学生信息时,使用了`printf("%.2f", students[i].average)`来指定输出的浮点数保留两位小数。
用c语言和数组写出按学号查询学生信息(学号、姓名、成绩)的程序
好的,以下是使用 C 语言和数组编写的按学号查询学生信息的程序。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT 100
struct student {
char id[10];
char name[20];
int grades[3];
};
int main() {
struct student arr[MAX_STUDENT];
int n;
printf("请输入学生人数(不超过 %d 人):", MAX_STUDENT);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第 %d 个学生的学号、姓名、三门课成绩:", i + 1);
scanf("%s%s%d%d%d", arr[i].id, arr[i].name, &arr[i].grades[0], &arr[i].grades[1], &arr[i].grades[2]);
}
char query_id[10];
printf("请输入要查询的学生学号:");
scanf("%s", query_id);
int found = 0;
for (int i = 0; i < n; i++) {
if (strcmp(arr[i].id, query_id) == 0) {
printf("学号:%s\n姓名:%s\n成绩:%d %d %d\n", arr[i].id, arr[i].name, arr[i].grades[0], arr[i].grades[1], arr[i].grades[2]);
found = 1;
break;
}
}
if (!found) printf("未找到该学生!\n");
return 0;
}
```
程序首先定义了一个结构体 `student`,用于存储学生的基本信息。在 `main` 函数中,首先读入学生的总人数 `n`,然后用一个循环读入每个学生的学号、姓名、以及三门课成绩。这里使用了结构体数组 `arr` 来存储所有学生的信息。
接下来,程序读入用户要查询的学生学号 `query_id`,然后用一个循环遍历所有学生信息,查找与 `query_id` 相同的学生信息。如果找到了,则输出该学生的信息,否则输出未找到该学生的提示。
注意,这里使用了字符串比较函数 `strcmp` 来比较学号是否相同,需要包含头文件 `<string.h>` 才能使用该函数。另外,为了方便起见,这里只读入了三门课成绩。如果需要读入更多成绩,可以增加成绩数组的长度。