| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:快考试了,自己写了个程序,走过路过的大神请指导一下,很急,谢谢!
只看楼主 加入收藏
转念一想
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2016-10-18
结帖率:71.43%
收藏
已结贴  问题点数:6 回复次数:4 
快考试了,自己写了个程序,走过路过的大神请指导一下,很急,谢谢!
有10个学生,输入学生信息,以及3门课成绩,把平均分最高的同学的信息输出,统计有两门或两门以上不及格的人数
#include<stdio.h>
#define N 2
struct score{
float math;
float english;
float chinese;
};
struct student{
int ID;
char name[20];
int age;
struct score lesson;
};
void input(struct student stu[],int n)
{
int i;
for(i=0;i<2;i++)
scanf("%d%s%d%f%f%f",&stu[i].ID,stu[i].name,&stu[i].age,&stu[i].lesson.math,&stu[i].lesson.english,&stu[i].lesson.chinese);

}
void highscore(struct student stu[],int n)
{
float aver[2],sum[2],max;
int i,j;
for(i=0;i<2;i++){
sum[i]=stu[i].lesson .math+stu[i].lesson .english+stu[i].lesson .chinese;
aver[i]=sum[i]/3;
}

for(i=0;i<2;i++){
printf("第%d位学生的平均分为:%f\n",i+1,aver[i]);
}
max=aver[0];
for(i=0;i<2;i++){
 if(aver[i]>max){
max=aver[i];
j=i;}
}
}
printf("平均分成绩最高的学生信息:\n");//有错,不知怎么改
printf("%d",stu[j].ID);
printf("%s",stu[j].name);
printf("%d",stu[j].age);
printf("%f",stu[j].lesson.math);
printf("%f",stu[j].lesson.english);
printf("%f",stu[j].lesson.chinese);
}
void search(struct student stu[],int n)
{
int i,j=0,sum=0;
for(i=0;i<2;i++){
if(stu[i].lesson.math<60)
sum++;
if(stu[i].lesson.english<60)
sum++;
if(stu[i].lesson.chinese<60)
sum++;
}
if(sum>=2)
j++;
printf("不合格的人数为%d",j);//运行结果有错
}
int main()
{
struct student stu[N];
printf("学号 姓名 年龄 3门课的成绩:\n");
input(stu,N);
highscore(stu,N);
search(stu,N);
return 0;
}

 

 

 
搜索更多相关主题的帖子: english include 统计 信息 
2016-12-24 15:57
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:2 
为什么10个学生N要定义为2?那些函数都是为处理两个学生设计的,为何又要传入一个不使用的形参n?
2016-12-24 16:06
神月泽夜
Rank: 1
等 级:新手上路
帖 子:24
专家分:9
注 册:2016-11-29
收藏
得分:2 
为什么感觉不用写那么长呢
2016-12-24 21:01
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:2 
我的编译器报错一大堆这本来就是一个很明显的问题~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-24 22:25
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:2 
#include<stdio.h>
 #define N 5
 struct score{
    float math;
    float english;
    float chinese;
 };
 
 struct student{
    int ID;
    char name[20];
    int age;
    struct score lesson;
 };
 
 void input(struct student stu[], int n)
 {
     int i;
     for(i = 0; i < n; i++)
     {
        scanf("%d%s%d%f%f%f", &stu[i].ID,stu[i].name, &stu[i].age, &stu[i].lesson.math, &stu[i].lesson.english, &stu[i].lesson.chinese);
         
     }
 }
 
 void highscore(struct student stu[], int n)
 {
     float aver[n], sum[n], max;
     int i, j= 0;
     for(i = 0; i < n; i++)
     {
        sum[i] = stu[i].lesson .math+stu[i].lesson .english+stu[i].lesson .chinese;
        aver[i] = sum[i]/3;
     }
   
     printf("\n");
     for(i = 0; i < n; i++)
     {
         printf("第%d位学生的平均分为:%3.2f\n", i+1, aver[i]);
     }
     
     max = aver[0];
     for(i = 0; i < n; i++)
     {
         if(aver[i] > max)
         {
            max = aver[i];
            j = i;
         }
     }
 
     printf("\n平均分成绩最高的学生信息:\n");   //有错,不知怎么改
     printf("学号: %d  \n",stu[j].ID);
     printf("姓名: %s  \n",stu[j].name);
     printf("年龄: %d  \n",stu[j].age);
     printf("数学成绩: %3.2f  \n",stu[j].lesson.math);
     printf("英语成绩: %3.2f  \n",stu[j].lesson.english);
     printf("语文成绩: %3.2f  \n",stu[j].lesson.chinese);
 }
 
 void search(struct student stu[], int n)
 {
     int i, j= 0, sum= 0;
     for(i = 0; i < n; i++)
     {
        if(stu[i].lesson.math < 60)
           sum++;
        if(stu[i].lesson.english < 60)
           sum++;
        if(stu[i].lesson.chinese < 60)
           sum++;
 
        if(sum>=2)
           j++;
        sum = 0;  
     }
      
     printf("\n不合格的人数为  %d个",j);//运行结果有错
  }

 int main()
 {
     struct student stu[N];
     printf("学号 姓名 年龄 3门课的成绩(共%d个学生):\n", N);
     
     input(stu, N);
     highscore(stu, N);
     search(stu, N);
     
     return 0;
 }

早知做人那么辛苦!  当初不应该下凡
2016-12-24 23:16
快速回复:快考试了,自己写了个程序,走过路过的大神请指导一下,很急,谢谢!
数据加载中...
 
   



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

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