标题:我找了好久,都找不到问题在哪
只看楼主
casual0402
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-11
 问题点数:0 回复次数:4 
我找了好久,都找不到问题在哪
代码是为了实现以下三个功能:
1. 计算出第一门科目的平均分

2.找出有两门或者以上不及格的人

3.找出各门都85以上或者平均分90分以上的人

#include <stdio.h>

void average(int grade[4][5])
{
    int i;
    float ave = 0.0;

    for(i=0;i<4;i++)
        ave+=grade[i][0];
    ave/=4.0;
    printf("第一门课的平均分是:%5.2f\n\n",ave);
}

void find1(char stu[4][20],int grade[4][5])
{
    int i,j,t;
    t=0;

    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            if(grade[i][j]<60) t++;
            if(t>=2) {
                printf("有两门或者以上科目不及格的有: %s,%d,%d,%d,%d,%d,%5.2f\n\n",stu[i],grade[i][0],grade[i][1],grade[i][2],grade[i][3],grade[i][4],(grade[i][0]+grade[i][1]+grade[i][2]+grade[i][3]+grade[i][4])/5.0);
                break;
            }
        }
        t=0;
    }
}

void find2(char stu[4][20],int grade[4][5])
{
    int i,j,flag,tag;
    float ave=0.0;
    flag=tag=1;

    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            if(grade[i][j]<85)  flag=0;
            ave=ave+grade[i][j];
        }
        ave=ave/5.0;
        if(ave<90) tag=0;
        if((flag==1) || (tag==1)) printf("成绩优秀的有: %s\n\n",stu[i]);
        ave=0.0;
    }
}

int main()
{
    char stu[4][20];
    int grade[4][5];
    int i;

    printf("input the student's name and grade: \n\n");
    printf("eg. :lei\n70,71,72,73,74\n\n");
    for(i=0;i<4;i++)
    {
        scanf("%s",stu[i]);
        scanf("%d,%d,%d,%d,%d",&grade[i][0],&grade[i][1],&grade[i][2],&grade[i][3],&grade[i][4]);
    }

    average(grade);

    find1(stu,grade);

    find2(stu,grade);

    return 0;
}
搜索更多相关主题的帖子: ave int 平均分 grade void 
2008-05-26 19:49
casual0402
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-11
得分:0 
输入:
101
34,56,88,99,89
102
77,88,99,67,78
103
99,90,87,86,89
104
78,89,99,56,77

输出:第一门科目的平均分是: 72.00

有两门课或者以上不及格的有: 101,34,56,88,99,89,73,20  //学号,各科成绩,平均分
2008-05-26 19:49
casual0402
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-11
得分:0 
我找不出  输出不了优秀成绩的原因
2008-05-26 19:49
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
得分:0 
判断开关变量——flag 和 tag用一个else来给开关变量为真。
  for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            if(grade[i][j]<85)  flag=0;
           ELSE  FLAG=1;
            ave=ave+grade[i][j];

  ave=ave/5.0;
        if(ave<90) tag=0;
       ELSE TAG=1;
        if((flag==1) || (tag==1)) printf("成绩优秀的有: %s\n\n",stu[i]);
        ave=0.0;
2008-05-26 22:42
casual0402
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-5-11
得分:0 
回复 4# 伤心的我 的帖子
谢谢
2008-05-27 09:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-216039-1-1.html




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

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