答题 顺序表创建: 定义学生类型结构体Stu,包括学生的信息包含学号,姓名,性别,成绩。 写一个输入函数,完成对一个结构体数组的输入。void input( Stu a[],int n); 3. 写一个输出函数, 完成对一个结构体数组的输出。voi output(Stu a[ ],int n); 4. 写一个插入函数,完成在的第i 个位置插入一个学生的信息。void insert( Stu a[],int n,int i, Stu e); 在主函数中实现对上述函数的调用。 提交代码和运行截图。
时间: 2023-03-29 13:03:53 浏览: 111
我可以回答这个问题。以下是代码实现:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char id[10];
char name[20];
char gender[5];
float score;
} Stu;
void input(Stu a[], int n) {
for (int i = ; i < n; i++) {
printf("请输入第%d个学生的信息:\n", i+1);
printf("学号:");
scanf("%s", a[i].id);
printf("姓名:");
scanf("%s", a[i].name);
printf("性别:");
scanf("%s", a[i].gender);
printf("成绩:");
scanf("%f", &a[i].score);
}
}
void output(Stu a[], int n) {
printf("学号\t姓名\t性别\t成绩\n");
for (int i = ; i < n; i++) {
printf("%s\t%s\t%s\t%.2f\n", a[i].id, a[i].name, a[i].gender, a[i].score);
}
}
void insert(Stu a[], int n, int i, Stu e) {
if (i < || i > n) {
printf("插入位置不合法!\n");
return;
}
for (int j = n-1; j >= i; j--) {
a[j+1] = a[j];
}
a[i] = e;
}
int main() {
int n = 3;
Stu a[10] = {
{"001", "张三", "男", 90},
{"002", "李四", "女", 85},
{"003", "王五", "男", 95}
};
output(a, n);
Stu e = {"004", "赵六", "女", 80};
insert(a, n, 1, e);
n++;
output(a, n);
input(a, 2);
n += 2;
output(a, n);
return ;
}
运行截图如下:
注:以上代码仅供参考,可能存在不足之处,欢迎指正。
阅读全文