检查为什么输入1 zhang 78 2 wang 80 3 li 75 4 zhao 85 0 80
时间: 2024-03-13 19:43:38 浏览: 19
这段代码的作用是创建一个学生信息链表,然后删除所有成绩低于指定分数的学生信息节点,并输出剩余学生信息节点的内容。所以,你输入的数据格式应该是学生的学号、姓名和成绩,每个学生信息之间用空格隔开,每个学生信息占一行,最后一行输入 0 和指定的分数。因此,你输入的数据应该是这样的:
```
1 zhang 78
2 wang 80
3 li 75
4 zhao 85
0 80
```
这样输入后,程序会创建一个学生信息链表,然后删除所有成绩低于 80 分的学生信息节点,最后输出剩余的学生信息节点。
相关问题
输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。 输入样例: 1 zhang 78 2 wang 80 3 li 75 4 zhao 85 0 输出样例: 1 zhang 78 2 wang 80 3 li 75 4 zhao 85 用c语言程序写代码
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student {
int num;
char name[20];
int score;
struct student* next;
};
int main() {
struct student* head = NULL;
struct student* p, *tail;
int num, score;
char name[20];
while (1) {
scanf("%d", &num);
if (num == 0) {
break;
}
scanf("%s%d", name, &score);
p = (struct student*)malloc(sizeof(struct student));
p->num = num;
strcpy(p->name, name);
p->score = score;
p->next = NULL;
if (head == NULL) {
head = p;
tail = p;
} else {
tail->next = p;
tail = p;
}
}
printf("学号\t姓名\t成绩\n");
p = head;
while (p != NULL) {
printf("%d\t%s\t%d\n", p->num, p->name, p->score);
p = p->next;
}
p = head;
while (p != NULL) {
tail = p->next;
free(p);
p = tail;
}
return 0;
}
```
请你用C语言实现一个将输入的学生成绩组织成单向链表的简单函数。 函数接口定义: void input(); 该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下: struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node *next; /*指向下个结点的指针*/ }; 单向链表的头尾指针保存在全局变量head和tail中。 输入为若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束。 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #include <string.h> struct stud_node { int num; char name[20]; int score; struct stud_node *next; }; struct stud_node *head, *tail; void input(); int main() { struct stud_node *p; head = tail = NULL; input(); for ( p = head; p != NULL; p = p->next ) printf("%d %s %d\n", p->num, p->name, p->score); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 1 zhang 78 2 wang 80 3 li 75 4 zhao 85 0 输出样例: 1 zhang 78 2 wang 80 3 li 75 4 zhao 85
#include <stdio.h>
#include <stdlib.h>
struct stud_node { int num; /*学号*/ char name[20]; /*姓名*/ int score; /*成绩*/ struct stud_node *next; /*指向下个结点的指针*/ };
struct stud_node *head, *tail;
void input()
{
struct stud_node *p = (struct stud_node*)malloc(sizeof(struct stud_node));
int num;
scanf("%d", &num);
while (num != 0)
{
p->num = num;
scanf("%s %d", p->name, &(p->score));
p->next = NULL;
if (head == NULL)
head = tail = p;
else
{
tail->next = p;
tail = tail->next;
}
scanf("%d", &num);
}
free(p);
} int main()
{
head = tail = NULL;
input();
return 0;
}答案:我可以提供一份C语言实现将输入的学生成绩组织成单向链表的简单函数的代码。在main函数中,先初始化head和tail指针,然后调用input函数,input函数中使用scanf从输入中获取学生的信息,并将其组织成单向链表,当输入学号为0时结束。