| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 939 人关注过本帖
标题:[求助]我有一道题
只看楼主 加入收藏
Carlqiu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-29
收藏
 问题点数:0 回复次数:12 
[求助]我有一道题
实现简单的学生管理系统。(1)输入10个学生学号,姓名和C成绩。 (2)按照C成绩从高到低排序。姓名学号也随之调整。(3)能求出10个学生平均成绩及最高分和最低分的差值
刚开始学C,希望大家帮我下
搜索更多相关主题的帖子: 学号 学生 系统 姓名 
2007-07-10 07:35
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
“刚开始学C”?!
不要骗人了,明明是课程设计之类的东东
2007-07-10 09:21
Carlqiu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-29
收藏
得分:0 
晕,我连指针的不会不算刚开始学C啊?
2007-07-10 12:30
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
不用指针,只要结构体数组就能做这题

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-07-10 18:29
love154139
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-5-6
收藏
得分:0 

还是自己回去慢满研究吧...别人写出来的东西又不是你自己的....


2007-07-10 18:40
Carlqiu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-29
收藏
得分:0 
...结构体数组.汗,没学过..
2007-07-10 20:04
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 

刚刚写的,基本符合要求

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<malloc.h>

struct student{
char stu_num[10];
char stu_name[10];
float stu_grade;
};

int get_stu(struct student *stu,int i)//输入第i个学生的信息,存入数组stu中
{
student stu_temp;
printf("Enter the num of the student:");
scanf("%10s",&stu_temp.stu_num);
printf("Enter the name of student:");
scanf("%10s",&stu_temp.stu_name);
printf("Enter the grade of the student:");
scanf("%f",&stu_temp.stu_grade);
stu[i-1]=stu_temp;
return 0;
}

int order_stu(struct student *stu,int n)//按成绩排序,降序排列
{
student stu_temp;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(stu[j].stu_grade>stu[i].stu_grade)
{
strcpy(stu_temp.stu_num,stu[i].stu_num);
strcpy(stu_temp.stu_name,stu[i].stu_name);
stu_temp.stu_grade=stu[i].stu_grade;

strcpy(stu[i].stu_num,stu[j].stu_num);
strcpy(stu[i].stu_name,stu[j].stu_name);
stu[i].stu_grade=stu[j].stu_grade;

strcpy(stu[j].stu_num,stu_temp.stu_num);
strcpy(stu[j].stu_name,stu_temp.stu_name);
stu[j].stu_grade=stu_temp.stu_grade;
}
}
}
return 0;
}

float average_stu(struct student *stu,int n)//计算平均成绩
{
float average,sum=0;
for(int i=0;i<n;i++)
{
sum+=stu[i].stu_grade;
}
average=sum/(float)n;
return average;
}

int print_stu(struct student *stu,int n)//打印输出学生信息
{
for(int i=0;i<n;i++)
{
printf("%10s % 10s %10f\n",stu[i].stu_num,stu[i].stu_name,stu[i].stu_grade);
}
return 0;
}

int main()
{
int n;
printf("输入学生个数:");
scanf("%d",&n);

struct student stu[n];
memset(stu,0,n*sizeof(student));

for(int i=0;i<n;i++)
{
get_stu(stu,i+1);
}
order_stu(stu,n);

print_stu(stu,n);
printf("平均成绩为:%f\n",average_stu(stu,n));
printf("最高分和最低分的差为:%f\n",stu[0].stu_grade-stu[n-1].stu_grade);
getch();
return 0;
}

[此贴子已经被作者于2007-7-16 10:33:16编辑过]


只有想不到,没有做不到
2007-07-10 20:05
恋∑天空
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-7-2
收藏
得分:0 

用数组就可以解决的


2007-07-10 20:13
Carlqiu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-29
收藏
得分:0 
回复:(恋∑天空)用数组就可以解决的
用数组怎么做?告诉我算法...我现在没头绪...
2007-07-10 20:27
Carlqiu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-29
收藏
得分:0 
主要是我结构体和指针都没学过,所以做这题我没头绪...因为要排序的话如果每个学生的名字,学号,分数在一个数组里,怎么单独比较分数,使整个包括姓名学号的数组按降序排列.单但是如果把学号姓名和分数不放在一个数组中的话,又怎么让学号姓名的数组随着分数改变顺序..
2007-07-10 20:35
快速回复:[求助]我有一道题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017826 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved