| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2044 人关注过本帖
标题:结构体问题有待大家处理
取消只看楼主 加入收藏
zylwzg
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-11-4
结帖率:100%
收藏
 问题点数:0 回复次数:2 
结构体问题有待大家处理
有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
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
zylwzg
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-11-4
收藏
得分:0 
不好意思,我说话有点过了,对不起大家了
那大家帮我弄个简单一点的,这个太麻烦,谢谢

感谢大家的支持和帮助.
2007-12-20 12:30
快速回复:结构体问题有待大家处理
数据加载中...
 
   



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

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