c语言编程,输入学生成绩记录表重的信息。再按从高到低的排序输出,并计算总分

如下表学号姓名数学成绩1Zhang902Li853Wang734Ma925Zhen866Zhao1007Gao878Xu829Mao7810Liu95为什么不对?#inc... 如下表学号 姓名 数学成绩
1 Zhang 90
2 Li 85
3 Wang 73
4 Ma 92
5 Zhen 86
6 Zhao 100
7 Gao 87
8 Xu 82
9 Mao 78
10 Liu 95
为什么不对?
#include<stdio.h>
struct Student
{ int num;
char name[10];
int grade;
};
void main()
{void input(struct Student stu[]);//函数声明//
void order(struct Student stu[]);
struct Student stu[10],*p=stu;
int sum,i;
input(p);
order(p);
sum+=stu[i].grade;
printf("Sum=%d",sum);
}
void input(struct Student stu[])
{int i;
printf("请输入各学生的信息:学号、姓名、成绩:\n");
for(i=0;i<10;i++)
scanf("%d%s%d",&stu[i].num,stu[i].name,stu[i].grade);
}
void order(struct Student stu[])
{ int i,a[5]={0},j,k;
a[i]=stu[i].grade;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(a[j]<a[i])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
for(k=0;k<10;k++)
{
if(stu[k].grade==a[i])
{ printf("%d%s%d",stu[k].num,stu[k].name,stu[k].grade);
break;
}
continue;
}
}
}
展开
 我来答
xoaxa
推荐于2017-10-06 · TA获得超过8613个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3704万
展开全部
#include <stdio.h>

struct Student {
int num;
char name[10];
int grade;
};

void main() {
void input(struct Student stu[],int n);//函数声明//
void order(struct Student stu[],int n);
int sum(struct Student stu[],int n);
struct Student stu[10];
input(stu,10);
order(stu,10);
printf("Sum = %d\n",sum(stu,10));
}

void input(struct Student stu[],int n) {
int i;
printf("请输入各学生的信息:学号、姓名、成绩:\n");
for(i = 0;i < n;i++)
scanf("%d%s%d",&stu[i].num,stu[i].name,&stu[i].grade);
}

void order(struct Student stu[],int n) {
int i,j;
struct Student temp;
for(i = 0;i < n - 1;i++) {
for(j = i + 1;j < n;j++){
if(stu[i].grade < stu[j].grade) {
temp = stu[i];
stu[i] = stu[j];
stu[j] = temp;
}
}
}
}

int sum(struct Student stu[],int n) {
int i,sum = 0;
for(i = 0; i < n; ++i)
sum += stu[i].grade;
return sum;
}
更多追问追答
追问
程序都没有错,但是为什么输入不了信息,总是输入两个出错,是输入方式不对吗
追答
每行输入三个数据,用空格隔开,结束,如
1 Zhang 90
2 Li 85
3 Wang 73
4 Ma 92
5 Zhen 86
6 Zhao 100
依稀红颜落
2014-05-24 · TA获得超过203个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:134万
展开全部
首先,子函数声明应该写在主程序之前,而不是主程序里面。其次,排序算法里面,i未初始化,怎么能直接用呢,还有,a[i]=成绩的语句也应该是一个循环
追问
可以写在主函数里面做声明,书上也是这样写的,现在的问题是不能输入十条数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式