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



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

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