C语言,建立一个单向链表,再输入一个成绩值,将成绩大于等于该值的学生信息输出。

//1.输入若干个学生信息(包括学号、姓名和成绩),//输入学号为0时输入结束,建立一个单向链表,再输入一个成绩值,将成绩大于等于该值的学生信息输出。#include<s... //1.输入若干个学生信息(包括学号、姓名和成绩),
//输入学号为0时输入结束,建立一个单向链表,再输入一个成绩值,将成绩大于等于该值的学生信息输出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student{
int num;
char name[20];
int score[10];
struct student *next;
};

int main()
{
struct student *head,*tail,*p;
int num,score[10],i=1;
char name[20];
int size=sizeof(struct student);

head = NULL;
printf("1输入学号姓名成绩\n");
scanf("%d%s%d",&num,name,&score[i]);

while(num!=0)
{
p=(struct student*)malloc(size);
p->num = num;
strcpy(p->name,name);
p->next =NULL;

if(head==NULL)
head = p;
else
tail->next = p;
tail=p;

printf("输入学号姓名成绩\n");
scanf("%d%s%d",&num,name,&score[i]);
if(score[i]>score[i-1])
printf("%d%s%d",num,name,score[i]);
else
printf("%d%s%d",num,name,score[i-1]);

i=i+1;
}

return 0;
}
展开
 我来答
漠影歌
2015-05-11 · TA获得超过807个赞
知道小有建树答主
回答量:483
采纳率:50%
帮助的人:452万
展开全部
首先,scanf("%d%s%d",&num,name,&score[i]); 每个百分号用空格或者逗号隔开,系统不会给你区别你现在输入的是字符串还是数字,你的%s%d,假设你输入是的qwe123,只会认为你qwe123是一个字符串,而不是qwe 是字符串,123是分数,这能解决你运行不过去的问题,至于结果,你的算法有问题,自己再改改
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式