输入若干个学生信息(学号 姓名 成绩) 输入学号为0时输入结束 建立一个单向链表 再输入一个成绩值 30

输入若干个学生信息(学号姓名成绩)输入学号为0时输入结束建立一个单向链表再输入一个成绩值将成绩大于该值的学生信息输出... 输入若干个学生信息(学号 姓名 成绩) 输入学号为0时输入结束 建立一个单向链表 再输入一个成绩值 将成绩大于该值的学生信息输出 展开
 我来答
刺友互
高粉答主

2019-12-27 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:64.6万
展开全部

1、首先,定义一个数据结构student,包含学生的各信息。

2、定义两个student类型的变量,保存所有学生的成绩信息和临时变量。

3、定义一个自定义函数,输入学生的成绩信息。

4、具体实现学生信息的输入,并计算总分。

5、主函数中,先定义4个整型变量,保存学生的总数,以及控制循环的变量。

6、接着,输入学生总数,保存在变量n中。

7、运行程序查看最后结果。

注意事项:

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

百度网友a16dddf
推荐于2017-05-25
知道答主
回答量:14
采纳率:100%
帮助的人:4.9万
展开全部

       这道题我已在另一地方回答——

http://zhidao.baidu.com/question/255870848.html?sort=6&old=1#answer-1404748948




以下是去掉最后一个条件——“再输入一个成绩值 将成绩大于该值的学生信息输出”。。。的解答!

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

struct stud_node{

     int    num;

     char  name[20];

     int    score;

     struct stud_node *next;

};

void main()

{

struct stud_node *head,*tail, *p;

int num, score;

char name[20];

int size = sizeof(struct stud_node);

head=tail=NULL;

scanf("%d", &num);

  while(num != 0){

scanf("%s%d",name,&score); 

p=(struct stud_node*)malloc(size);

p->num=num;

strcpy(p->name,name);

p->score=score;

p->next=NULL;

if(head==NULL)

head=p;

else

tail->next=p;

tail=p;

scanf("%d",&num);

}


for(p=head; p!=NULL; p=p->next)  

printf("%d %s %d\n", p->num,p->name,p->score);

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
半夜08
2013-05-16
知道答主
回答量:2
采纳率:0%
帮助的人:2976
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct stud_node{
int num;
char name[20];
int score;
struct stud_node*next;
};
int main(void)
{
struct stud_node *head,*p,*tail;
int num,score,m;
char name[20];

struct stud_node *ptr;
int size=sizeof(struct stud_node);
head=tail=NULL;
printf("Input num,nameandscore:\n");
scanf("%d",&num);
while(num!=0){
scanf("%s%d",name,&score);
p=(struct stud_node*)malloc(size);
p->num=num; strcpy(p->name,name);
p->score=score;
if(head==NULL){
head=p;
tail = p;
}
else
tail->next=p;
tail=p;
scanf("%d",&num);
}
printf("please enter m:");
scanf("%d",&m);
if(head==NULL){
printf("\n no records");
return 0;
}
for(ptr=head;ptr;ptr=ptr->next) {
if(ptr->score>=m)
printf("%8d%20s%6d\n",ptr->num,ptr->name,ptr->score);
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-15
展开全部
zju的作业?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式