| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2046 人关注过本帖
标题:结构体问题有待大家处理
只看楼主 加入收藏
zylwzg
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-11-4
结帖率:100%
收藏
 问题点数:0 回复次数:14 
结构体问题有待大家处理
有10个学生,每个学生数据包括学号、姓名及3门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及3门课的成绩),要求打印出每位学生的学号、姓名及3门课的成绩、总成绩和平均成绩,最后在打印出3门课的总平均成绩以及最高分学生的数据(包括姓名和总成绩)。要求:
(1)根据学生信息定义一个结构体类型,在说明一个该结构体类型的数组。
(2)用input函数从键盘上输入10个学生的数据;
(3)用average函数求出每个学生的总成绩、平均成绩和所有学生的总平均成绩;
(4)用maximum函数找出最高分的学生数据;
(5)在主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。
输出形式如下:
NO.      name        score1        score2         score3        total        average
101      wang          80              79               81              240           80.00   
102      li                91               90                89              270           90.00
The highest score:li,score total:270

[[italic] 本帖最后由 zylwzg 于 2007-12-18 08:48 编辑 [/italic]]
搜索更多相关主题的帖子: 结构体 
2007-12-18 08:41
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
比较简单!!

要练习算法就来http:///!!有挑战哦!!
2007-12-18 11:10
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
是作业就先自己做,有问题再发上来,没人会闲得没事帮你做作业!
2007-12-18 11:25
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
收藏
得分:0 
回复 3# 的帖子
嗯,说得有道理,我觉得楼主先自己去想一下,写一下大概的思路,或写出具体程序(哪怕有错)来,才拿出自己没有解决的问题来提问,这样比较有诚意,对LZ自己的帮助比较大,如果是单单为了完成一道作业而把题目发上来这样可是一点意思也没有的。。 人家也看不出你的诚意。。。

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-18 12:15
xianshizhe111
Rank: 1
等 级:新手上路
帖 子:1451
专家分:0
注 册:2007-12-8
收藏
得分:0 
3#说的有道理.
2007-12-18 15:07
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
这是你们的作业吧?难么?不自己做,人家做了,你看了就会忘
2007-12-18 15:24
zylwzg
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-11-4
收藏
得分:0 
给你们看下5分钟完成的作业 ,别整天装

#define N 2
#include<stdio.h>
struct fw
 {
  int num;
  char name[8];
  int score1;
  int score2;
  int score3;
  float total;
  float aved;
 };
main()
{
 struct fw student[N];
 float aves,maxnum,*temp=&aves;
 int i,a=1;
 char *maxname;
 for(i=0;i<N;i++)
 {scanf("%d",&(student[i].num));
  scanf("%s",&(student[i].name));
  scanf("%d",&(student[i].score1));
  scanf("%d",&(student[i].score2));
  scanf("%d",&(student[i].score3));
 }
 for(i=0;i<N;i++)
 {
  temp=average(a,&student[i]);
  student[i].total=*temp;
 }
 a=2;
 for(i=0;i<N;i++)
 {
  temp=average(a,&student[i]);
  student[i].aved=*temp;
 }
  a=3;
  temp=average(a,student);
  aves=*temp;
  maxnum=maximum(student);

 for(i=0;i<N;i++)
  if(maxnum==student[i].total)
  *maxname=student[i].name;
 printf("NO.   name     score1   score2   score3   total   average\n");
 printf("=========================================================\n");
 for(i=0;i<N;i++)
 printf("%-6d%-9s%-9d%-9d%-9d%-8.0f%-7.2f\n",student[i].num,student[i].name,student[i].score1,student[i].score2,student[i].score3,student[i].total,student[i].aved);
 printf("average=%-.2f\n",aves);
 printf("The highest score:%s,score total:%.0f\n",*maxname,maxnum);
}
average(int a,struct fw *w)
{
 int i;
 float z=0.5,*fp=&z;
  if(a==1)
 {
  *fp=(*w).score1+(*w).score2+(*w).score3;
 }
 if(a==2)
 {
  *fp=(*w).score1+(*w).score2+(*w).score3;
  *fp=(*fp)/3;
 }
 if(a==3)
 {
  *fp=1;
  for(i=0;i<N;i++)
  *fp=*fp-1+(*(w+i)).aved;
  *fp=*fp/N;
  }
 return(fp);
}
maximum(struct fw *y)
{
 float f;
 int i;
 f=((*y).score1+(*y).score2+(*y).score3);
 for(i=1;i<N;i++)
  if(f<((*(y+i)).score1+(*(y+i)).score2+(*(y+i)).score3))
   f=((*(y+i)).score1+(*(y+i)).score2+(*(y+i)).score3);
 return(f);
}
谁都不是吃素的.可求你们做点事了, 我只是想看看大家的好的处理方法,我的太麻烦, 看你们把我说成什么了,真叫人生气.

感谢大家的支持和帮助.
2007-12-18 18:56
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
自己做的就先发上来,再问别人有没更好的方法!
既然自己能5分钟解决,就不要浪费所有看贴人的5分钟!
没说你是吃素的,5分钟能写出来上面的那应该是高手!说的是学习的态度问题!
2007-12-18 19:11
许一民
Rank: 1
来 自:江苏连云港
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-9-29
收藏
得分:0 
  呵呵,5分钟恐怕我连字都打不完……佩服!

丛丛芳芫满冬秋,淡淡一笑泯恩仇!
2007-12-18 19:55
奥丁
Rank: 1
等 级:新手上路
帖 子:327
专家分:0
注 册:2006-10-18
收藏
得分:0 
可以用 结构体指针数组 来做
2007-12-19 00:58
快速回复:结构体问题有待大家处理
数据加载中...
 
   



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

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