| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 301 人关注过本帖
标题:自定义函数问题。。帮帮忙。。。
只看楼主 加入收藏
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
结帖率:94.12%
收藏
已结贴  问题点数:20 回复次数:5 
自定义函数问题。。帮帮忙。。。
我写的这个最后的结果都是0.00,不知道哪里错了。。。
程序代码:
#include<stdio.h>
#define N 10
#define M 5
float a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
float b1,b2,b3,b4,b5;
int m,n;
float x;
float a[N][M];
void input(void)//输入成绩
{
    int i,j;
    for(i=0;i<N;i++)
    {
        printf("请输入第%d个学生的五门成绩:",i+1);
        for(j=0;j<M;j++)
            scanf("%d",&a[i][j]);
   
    }
}
void stu_a(void)//计算每个学生的平均分
{
    int i,j;
    float k=0.0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            k+=a[i][j];
        if(i==0)a1=k/M;
        else if(i==1)a2=k/M;
        else if(i==2)a3=k/M;
        else if(i==3)a4=k/M;
        else if(i==4)a5=k/M;
        else if(i==5)a6=k/M;
        else if(i==6)a7=k/M;
        else if(i==7)a8=k/M;
        else if(i==8)a9=k/M;
        else if(i==9)a10=k/M;
        k=0.0;
    }
}
void cou_a(void)//计算每门课的平均分
{
    int i,j;
    float k;
    k=0.0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            k+=a[i][j];
        if(i==0)b1=k/N;
        else if(i==1)b2=k/N;
        else if(i==2)b3=k/N;
        else if(i==3)b4=k/N;
        else if(i==4)b5=k/N;
        k=0.0;
    }
}
float high_sco(void)//找出最高分数及对应的学生和课程
{
    int i,j;
    float high;
    high=(float)a[0][0];
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            if(a[i][j]>high)
            {high=(float)a[i][j],m=i,n=j;}
    }
    return high;
   
}
void f(float x)//计算平均分方差
{
    x=(a1*a1+a2*a2+a3*a3+a4*a4+a5*a5+a6*a6+a7*a7+a8*a8+a9*a9+a10*a10)/N-((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N)*((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N);
}
void main()
{
    printf("请输入10个学生五门课程的成绩\n");
    input();
    stu_a();
    cou_a();
    printf("stu_1平均分为%.2f\nstu_2平均分为%.2f\nstu_3平均分为%.2f\nstu_4平均分为%.2f\nstu_5平均分为%.2f\nstu_6平均分为%.2f\nstu_7平均分为%.2f\nstu_8平均分为%.2f\nstu_9平均分为%.2f\nstu_10平均分为%.2f\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,10);
    printf("cou_1平均分为%.2f\ncou_2平均分为%.2f\ncou_3平均分为%.2f\ncou_4平均分为%.2f\ncou_5平均分为%.2f\n",b1,b2,b3,b4,b5);
    printf("最高分为%.2f,是stu_%d,是cou_%d课程\n",high_sco(),m+1,n+1);
    printf("平均分方差为%.2f\n",x);
}

搜索更多相关主题的帖子: a10 color 
2013-02-04 16:45
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
没人帮忙。。。
2013-02-04 17:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看不懂噎

授人以渔,不授人以鱼。
2013-02-04 17:22
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:20 
错误找到,是类型搭配错误,在程序中已经标出:
#include<stdio.h>
#define N 10
#define M 5
float a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
float b1,b2,b3,b4,b5;
int m,n;
float x;
float a[N][M];                                 //这定义的是float类型,而下面输入时的是用的是%d,不对应。将数组换成int类型就行了
void input(void)//输入成绩
{
    int i,j;
    for(i=0;i<N;i++)
    {
        printf("请输入第%d个学生的五门成绩:",i+1);
        for(j=0;j<M;j++)
            scanf("%d",&a[i][j]);               //上面定义的是float类型,这却用的是%d,不搭配
   
    }
}
void stu_a(void)//计算每个学生的平均分
{
    int i,j;
    float k=0.0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            k+=a[i][j];
        if(i==0)a1=k/M;
        else if(i==1)a2=k/M;
        else if(i==2)a3=k/M;
        else if(i==3)a4=k/M;
        else if(i==4)a5=k/M;
        else if(i==5)a6=k/M;
        else if(i==6)a7=k/M;
        else if(i==7)a8=k/M;
        else if(i==8)a9=k/M;
        else if(i==9)a10=k/M;
        k=0.0;
    }
}
void cou_a(void)//计算每门课的平均分
{
    int i,j;
    float k;
    k=0.0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            k+=a[i][j];
        if(i==0)b1=k/N;
        else if(i==1)b2=k/N;
        else if(i==2)b3=k/N;
        else if(i==3)b4=k/N;
        else if(i==4)b5=k/N;
        k=0.0;
    }
}
float high_sco(void)//找出最高分数及对应的学生和课程
{
    int i,j;
    float high;
    high=(float)a[0][0];
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
            if(a[i][j]>high)
            {high=(float)a[i][j],m=i,n=j;}
    }
    return high;
   
}
void f(float x)//计算平均分方差
{
    x=(a1*a1+a2*a2+a3*a3+a4*a4+a5*a5+a6*a6+a7*a7+a8*a8+a9*a9+a10*a10)/N-((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N)*((a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/N);
}
void main()
{
    printf("请输入10个学生五门课程的成绩\n");
    input();
    stu_a();
    cou_a();
    printf("stu_1平均分为%.2f\nstu_2平均分为%.2f\nstu_3平均分为%.2f\nstu_4平均分为%.2f\nstu_5平均分为%.2f\nstu_6平均分为%.2f\nstu_7平均分为%.2f\nstu_8平均分为%.2f\nstu_9平均分为%.2f\nstu_10平均分为%.2f\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,10);
    printf("cou_1平均分为%.2f\ncou_2平均分为%.2f\ncou_3平均分为%.2f\ncou_4平均分为%.2f\ncou_5平均分为%.2f\n",b1,b2,b3,b4,b5);
    printf("最高分为%.2f,是stu_%d,是cou_%d课程\n",high_sco(),m+1,n+1);
    printf("平均分方差为%.2f\n",x);
}

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-02-05 12:45
a151141
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:197
专家分:680
注 册:2012-10-19
收藏
得分:0 
你试试看还有其他错误没

世界上幸福的事就是抓到一只羊,更幸福的事就是抓到两只羊……
2013-02-05 12:46
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
回复 5楼 a151141
太粗心了,谢谢了。。
2013-02-07 00:04
快速回复:自定义函数问题。。帮帮忙。。。
数据加载中...
 
   



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

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