| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2451 人关注过本帖
标题:指针,有一个班4个学生,5门课程
取消只看楼主 加入收藏
jakenmj00123
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-4-5
结帖率:0
收藏
 问题点数:0 回复次数:0 
指针,有一个班4个学生,5门课程
有一个班4个学生,5门课程。①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生。
用float *std_average(float *p),我的值传不出去,这是为什么?

图片附件: 游客没有浏览图片的权限,请 登录注册


#include<stdio.h>
#include<math.h>

int main()
{
    void sub_average(float *p);
    //float *std_average(float *p);
    void std_fail(float (*p)[5]);
    void std_good(float *p);
   
    float a[4][5]={{80,98,98,92,96},{57,76,56,83,82},{72,77,76,87,83},{92,98,97,87,88}};
   
   
    sub_average(a);
    printf("\n");
    //std_average(a);
    //printf("\n");
    std_fail(a);
    printf("\n");
    std_good(a);
   
    return 0;   
}

/*********子函数*********/
float *std_average(float *p)
{
    int i,j;
    float sum,ave[5],*pt;
    for(i=0;i<4;i++)
    {
        sum=0;
        for(j=0;j<5;j++)
        {
            sum=sum+*(p+5*i+j);
        }
        ave[i]=sum/5;
    }
    pt=ave;
    return pt;
}

void sub_average(float *p)
{
    int i,j;
    float sum,ave[5];
    for(j=0;j<5;j++)
    {
        sum=0;
        for(i=0;i<4;i++)
        {
            sum=sum+*(p+5*i+j);
        }
        ave[j]=sum/4;
    }
    for(i=0;i<5;i++)
    {   
        printf("No.%d:",i+1);
        printf("%4.1f\n",ave[i]);
    }
}

void std_fail(float (*p)[5])
{
    int i,j,n=0;
    float *ave;
   
    ave=std_average(p);
   
    for(i=0;i<4;i++)
    {
        for(j=0;j<5;j++)
        {
            if(*(*(p+i)+j)<60)
            {
                n++;
            }
        }

        if(n>=2)
        {
            printf("No.%d student failed,his score is:\n",i+1);
            
            ///sum=0.0;
            for(j=0;j<5;j++)
            {
                printf("%4.1f  ",*(*(p+i)+j));
                //sum=sum+*(*(p+i)+j);
            }
            printf("\n");
            //ave=sum/5;
            printf("No.%d average=%4.1f\n",i+1,*(ave+i));//值传不出去
            n=0;
        }
    }   
}


void std_good(float *p)
{
    int i,j,num;
    float *ave;
    ave=std_average(p);
    for(i=0;i<4;i++)
    {
        num=0;
        for(j=0;j<5;j++)
        {
            if(*(p+5*i+j)>=85)
            {
                num++;
            }
        }
        if(num==5 || *(ave+i)>=90)
        {
            printf("N0.%d student is good,his average score is: %4.1f\n",i+1,*(ave+i));//值传不出去
        }
    }
}
搜索更多相关主题的帖子: include 课程 
2017-04-19 16:21
快速回复:指针,有一个班4个学生,5门课程
数据加载中...
 
   



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

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