如何制作数组储存名字c语言怎么用数组存储中文名字,【C语言】建立一个数组存储学生的学号、姓名和三门课程成绩和平均成绩
时间: 2024-12-15 09:22:34 浏览: 8
在C语言中,存储中文名字需要先了解如何处理非ASCII字符,因为C标准库默认是以ASCII字符集为主。一种常见的方式是使用宽字符类型`wchar_t`,特别是配合`wcscpy`函数来操作宽字符串。
要创建一个数组来存储学生的信息,包括学号、姓名(这里假设使用宽字符数组)、三门课程的成绩和平均成绩,你可以这样做:
```c
#include <stdio.h>
#include <wchar.h>
typedef struct {
wchar_t sid[10]; // 学号,10位宽字符数组
wchar_t name[50]; // 姓名,50位宽字符数组
int scores[3]; // 三门课程成绩
float avg_score; // 平均成绩
} Student;
void main() {
Student students[5]; // 假设最多有5名学生
// 示例:
wcscpy(students[0].sid, L"001"); // 设置学号
wcscpy(students[0].name, L"张三"); // 设置姓名
// 课程成绩示例,假设分数范围是0-100
students[0].scores[0] = 85;
students[0].scores[1] = 90;
students[0].scores[2] = 95;
// 计算平均分并存储
students[0].avg_score = (students[0].scores[0] + students[0].scores[1] + students[0].scores[2]) / 3.0f;
// 打印信息
for(int i=0; i<5; i++) {
printf("学生 %d: 学号:%ls 姓名:%ls 成绩:%d %d %d, 平均成绩:%f\n", i+1, students[i].sid, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2], students[i].avg_score);
}
}
阅读全文