定义一个结构体类型数组,要求至少有4个以上的成员,其中至少包括一个字符数组; 2、 完成向数组中输入数据,要求使用函数调用的形式完成; 3、 删除数组中指定位置的元素,并显示删除后的结果,数组元素的显示要求用函数调用的形式完成; 4、 向数组中指定位置插入一个新的元素,并显示插入以后的结果,数组元素的显示要求用函数调用的形式完成; 5、 可能的话,请将上述各种操作的选择,使用菜单的形式完成。
时间: 2023-03-30 09:01:16 浏览: 169
1、好的,定义一个结构体类型数组,如下所示:
struct Student {
char name[20];
int age;
float score;
};
struct Student students[5];
2、完成向数组中输入数据,使用函数调用的形式完成,如下所示:
void input(struct Student *students, int n) {
for (int i = ; i < n; i++) {
printf("请输入第%d个学生的姓名、年龄、成绩:\n", i + 1);
scanf("%s %d %f", students[i].name, &students[i].age, &students[i].score);
}
}
input(students, 5);
3、删除数组中指定位置的元素,并显示删除后的结果,数组元素的显示要求用函数调用的形式完成,如下所示:
void delete(struct Student *students, int n, int index) {
if (index < || index >= n) {
printf("删除位置不合法!\n");
return;
}
for (int i = index; i < n - 1; i++) {
students[i] = students[i + 1];
}
printf("删除成功!\n");
}
delete(students, 5, 2);
4、向数组中指定位置插入一个新的元素,并显示插入以后的结果,数组元素的显示要求用函数调用的形式完成,如下所示:
void insert(struct Student *students, int n, int index, struct Student student) {
if (index < || index >= n) {
printf("插入位置不合法!\n");
return;
}
for (int i = n - 1; i > index; i--) {
students[i] = students[i - 1];
}
students[index] = student;
printf("插入成功!\n");
}
struct Student new_student = {"Tom", 20, 90.5};
insert(students, 5, 2, new_student);
5、将上述各种操作的选择,使用菜单的形式完成,如下所示:
int main() {
int choice;
do {
printf("请选择操作:\n");
printf("1、输入数据\n");
printf("2、删除元素\n");
printf("3、插入元素\n");
printf("4、退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
input(students, 5);
break;
case 2:
int index;
printf("请输入要删除的位置:\n");
scanf("%d", &index);
delete(students, 5, index);
break;
case 3:
struct Student new_student;
printf("请输入要插入的学生的姓名、年龄、成绩:\n");
scanf("%s %d %f", new_student.name, &new_student.age, &new_student.score);
printf("请输入要插入的位置:\n");
scanf("%d", &index);
insert(students, 5, index, new_student);
break;
case 4:
printf("退出程序!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (choice != 4);
return ;
}
阅读全文