注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

浩瀚星云

上善若水 厚德载物<学习版>

 
 
 

日志

 
 

统计成绩-选出平均成绩最高的记录  

2014-09-16 11:55:15|  分类: 算法设计与分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
@wangbobo attention
1、结构体中各个域赋值时一定要注意什么时候要用“&”,
       什么时候不用(一般取具体的存储单元时需要&,
       像对其中的数组部分进行操作时通常不需要)。
2、在串和变量混合输入时,需要注意,要将串的输入放
       在最后,或者与后续变量分开输入。例如下面的输入语句
       ----------------------------------------------------------------------------------------------------------------
       scanf("%d,%s,%d,%d,%d",stu[i].num,stu[i].name,stu[i].grade[0],stu[i].grade[1],stu[i].grade[2]);
       输入:  245,liao,89,90,78 <回车>
                   246,wang,78,98,90<回车>
                   247,zhao,75,87,93<回车>
       输出:
       统计成绩-选出平均成绩最高的记录 - brain - 百年孤独
       录入"%s"后录入"%d",因为录入字符串时默认是遇到回车符时才表明输入结束,因此系统会将后面
       输入的3个%d,%d,%d数字也当做串的元素来处理了,导致结构体中后面三个记录成绩的单元没有
       写入值,输出乱码。
       --------------------------------------------------------------------------------------------------
3、当调试出现错误时,可以采用分步调试,或者添加一
      些提示语句,对错误进行定位,快速找到问题所在。
-------------------------------------------------------------------------------
#include <stdio.h>
#define n 3
struct student
{
int num;
char name[10];
float grade[3];
float aver;
};
void inpute(struct student stu[])
{
int i;    
for(i=0;i<n;i++)
{
printf("请输入学号,姓名:\n");
scanf("%d,%s",&stu[i].num,stu[i].name);
printf("请依次输入3门课程的成绩:\n");
scanf("%f,%f,%f",&stu[i].grade[0],&stu[i].grade[1],&stu[i].grade[2]);
}
        printf("-------------------------------------------------------\n");
}
void average(struct student stu[])
{
int i;
float k=3;
for(i=0;i<n;i++)
{
         stu[i].aver=(stu[i].grade[0]+stu[i].grade[1]+stu[i].grade[2])/k;
                 printf("学生%s",stu[i].name);
         printf("的平均成绩为:%f\n",stu[i].aver);
}
printf("-------------------------------------------------------\n");
}
struct student max(struct student stu[])
{
int i,m=0;
for(i=0;i<n;i++)
{
if(stu[i].aver>stu[m].aver)
m=i;
}
return stu[m];
}
int main()
{
struct student stu[n],stud,*p=stu;
inpute(p);
        average(p);
        printf("\n");
        printf("平均成绩最高的是:");
        stud=max(p);
        printf("学生%s \n\n",stud.name);
        printf("--------------------------------------------------------\n");
        printf("成绩单如下:\n");
printf("学号:%d, 姓名:%s, 课程1:%f,课程2:%f,课程3:%f         \n",stud.num,stud.name,stud.grade[0],stud.grade[1],stud.grade[2]);
        printf("平均成绩:%f\n",stud.aver); 
}
统计成绩-选出平均成绩最高的记录 - brain - 百年孤独
 
  评论这张
 
阅读(53)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017