| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 950 人关注过本帖
标题:成绩输入与输出
只看楼主 加入收藏
sunpy
Rank: 1
来 自:厦门
等 级:新手上路
帖 子:118
专家分:0
注 册:2007-10-1
结帖率:100%
收藏
 问题点数:0 回复次数:4 
成绩输入与输出
4个学生5门课程的成绩:
要求:
求第一门课程的平均分

找到有2门科目不及格的学生,输出他们的学号,成绩和平均成绩

//找到平均成绩在90分以上的或者全部课程成绩在85分以上的学生
下面是我的代码:




#include<stdio.h>
#define N 5
#define M 4
float average(float *p);
float * search(float (*p)[N]);
float * find(float (*p)[N]);
int
main()
{
//变量及数组定义
    float score[M][N],avescore;
    int i,j;
    //输入各个学生的成绩
    for(j=0;j<M;j++)
    {
        printf("NO.%d scores:\n",j+1);
        for(i=0;i<N;i++)
            scanf(" %f ",*(score+j)+i);
        printf("\n");
    }
    //求第一门课程的平均分
    avescore=average(*score);
    printf(" the average of the first is:%f\n",avescore);
    //找到有2门科目不及格的学生,输出他们的学号,成绩和平均成绩
    for(j=0;j<M;j++)
    {
        float *p;
        p=search(score+j);
        if(p==*(score+j))
        {
            float sum;
            printf("NO.%d scores:\n",j+1);
            for(i=0;i<N;i++)
            {   
                printf(" %f ",*(p+i));
                sum+=*(p+i);
            }
            
            printf("\n the average score is :%f\n",sum/N);
        }
        printf("\n");
    }
    //找到平均成绩在90分以上的或者全部课程成绩在85分以上的学生
    for(j=0;j<M;j++)
    {
        float *p;
        p=find(score+j);
        if(p==*(score+j))
        {
            printf("NO.%d scores:\n",j+1);
            for(i=0;i<N;i++)
                printf(" %f ",*(p+i));
        }
        printf("\n");
    }
   
}
    //求平均分
    float
    average(float * p)
    {
        float sum,avsco;
        sum=0;
        int i;
        for(i=0;i<M;i++)
            sum+=*(p+i*N);
        avsco=sum/i;
        return(avsco);
    }
   
    //找到功课至少有两门不及格的学生,返回该行的首地址
    float * search(float (*p)[N])
    {
        int i,j;
        float * pt;
        pt=*(p-1);
        for(i=0;i+1<N;i++)
            if(*(*p+i)<60)
                for(j=i+1;j<N;j++)
                    if(*(*p+j)<60)
                        pt=*p;
        return(pt);
    }        
   
    //找到平均成绩在90分以上的或者全部课程成绩在85分以上的学生,返回该行的首地址
    float * find(float (*p)[N])
    {
        int i;
        float avscore,*pt,sum=0;
        pt=*(p+1);
        for(i=0;i<N;i++)
        {
            sum+=*(*p+i);
        }
        avscore=sum/4;
        if(avscore>=90)
            pt=*p;
        return(pt);
    }
        编译是没有错误,然而运行时,成绩也无法输入、希望高手指点!谢谢!
搜索更多相关主题的帖子: 输出 输入 
2007-12-06 12:12
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 
我用DEV-CPP运行```没有什么问题啊```

女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-12-06 13:04
wfjt
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2007-11-30
收藏
得分:0 
没有问题啊
2007-12-06 14:18
魔城侠客
Rank: 1
等 级:新手上路
帖 子:200
专家分:0
注 册:2006-4-4
收藏
得分:0 
呵,似乎没什么问题,不过求平均分的时候好像求错了
你换个编译器试试
我用VC++6.0

West and east,home is best……
2007-12-06 15:01
xishuiwuqing
Rank: 1
等 级:新手上路
帖 子:99
专家分:0
注 册:2007-11-1
收藏
得分:0 
高手!
高手就是高手,程序那么长! 我什么时候才能像你那样厉害啊,啊?
我要加油啊!!!!!!!!!!!!!!!!!!

2007-12-11 10:56
快速回复:成绩输入与输出
数据加载中...
 
   



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

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