void deleteRecord() { printf("请输入要删除的学生学号:"); int targetId,i; scanf("%d",&targetId); int foundIndex=-1; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { foundIndex=i; break; } } if(foundIndex==-1) { printf("未找到要删除的学生成绩!\n"); return; } printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[foundIndex].id,students[foundIndex].name,students[foundIndex].scores[0],students[foundIndex].scores[1],students[foundIndex].scores[2],students[foundIndex].average); for(int i=foundIndex;i<studentCount-1;i++) { students[i]=students[i+1]; } studentCount--; printf("成绩删除成功!\n"); }的算法思想
时间: 2023-07-15 14:12:40 浏览: 35
这段代码是一个删除学生成绩记录的函数。具体算法思想如下:
1. 首先输入要删除的学生学号。
2. 遍历学生数组,查找要删除的学生记录的索引位置。
3. 如果未找到要删除的学生记录,则输出提示信息并返回。
4. 如果找到要删除的学生记录,则输出该学生的学号、姓名、成绩信息以及平均成绩。
5. 将要删除的学生记录之后的所有记录向前移动一个位置。
6. 减少学生计数器,表示删除成功。
7. 输出删除成功的提示信息。
相关问题
void deleteStudent() { if (head == NULL) { printf("暂无学生信息。\n"); return; } int targetID; printf("请输入要删除的学生学号:"); scanf("%d", &targetID);解释这段代码
这是一个 C 语言函数,名为 `deleteStudent()`,它的作用是删除一个指定学号的学生信息。
如果链表头指针 `head` 为 `NULL`,也就是链表为空,函数先输出 "暂无学生信息。\n" 的提示信息,然后直接返回。
如果链表不为空,函数会提示用户输入要删除的学生学号,然后通过 `scanf()` 函数读取用户输入的学号,并存储在整型变量 `targetID` 中。
接下来,函数会遍历链表,查找学号为 `targetID` 的学生信息。如果找到该学生,就将其从链表中删除。
如果没有找到该学生,函数会输出 "未找到该学生。\n" 的提示信息,然后返回。
void modifyRecord() { int targetId,m,i; printf("\n请输入要修改的学生学号:"); scanf("%d",&targetId); int foundIndex=-1; for(i=0;i<studentCount;i++) { if(students[i].id==targetId) { foundIndex=i; break; } } if (foundIndex==-1) { printf("未找到要修改的学生成绩!\n"); return; } printf("学号:%d,姓名:%s,成绩:%d %d %d,平均成绩:%.2f\n",students[foundIndex].id,students[foundIndex].name,students[foundIndex].scores[0],students[foundIndex].scores[1],students[foundIndex].scores[2],students[foundIndex].average); struct Student newStudent; printf("\n请选择修改: 1.姓名 2.成绩1 3.成绩2 4.成绩3"); printf("\n请输入要修改的选项:"); scanf("%d", &m); switch(m) { case 1:printf("\n请输入正确的姓名:"); scanf("%s",students[foundIndex].name);break; case 2:printf("\n请输入正确的成绩1:"); scanf("%d",&students[foundIndex].scores[0]);break; case 3:printf("\n请输入正确的成绩2:"); scanf("%d",&students[foundIndex].scores[1]);break; case 4:printf("\n请输入正确的成绩3:"); scanf("%d",&students[foundIndex].scores[2]); break; } printf("成绩修改成功!\n"); }的算法思想
这段代码实现了对学生成绩的修改功能。首先,从用户输入中获取要修改的学生的学号,然后在学生数组中查找该学生的位置。如果找到该学生,则输出该学生的信息,包括学号、姓名、成绩以及平均成绩。接下来,用户可以选择修改学生的姓名或者某一门成绩。根据用户的选择,通过 switch-case 语句实现不同的修改操作。最后,输出修改成功的提示信息。如果未找到要修改的学生,则输出未找到的提示信息。