| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1131 人关注过本帖
标题:不知道怎么解决这个出错
只看楼主 加入收藏
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
结帖率:100%
收藏
 问题点数:0 回复次数:8 
不知道怎么解决这个出错
程序代码:
#include<stdio.h>
#define NUMBER1 3
#define NUMBER2 5
void average1(double[][NUMBER2]);//每个数集的平均值 
double average2(double[][NUMBER2]);//所有数值的平均值 
double max(double[][NUMBER2],int); //最大值
void enter(double[][NUMBER2],int,int);//输入 
void output(double[][NUMBER2],int,int); //输出 

int main(void)
{
    int a,b,c,n; 
    double array[NUMBER1][NUMBER2]={0};
    printf("请输入15个数值");
    enter(array,NUMBER1,NUMBER2);
    output(array,NUMBER1,NUMBER2);
    average1(array);
    printf("%f,%f,%f的平均值:%f\n",array[0][0],array[0][1],array[0][2],a);
    printf("%f,%f,%f的平均值:%f\n",array[1][0],array[1][1],array[1][2],b);
    printf("%f,%f,%f的平均值:%f\n",array[2][0],array[2][1],array[2][2],c);
    average2(array);
    printf("所有数值的平均值:%f",average2(array));
    max(array,n);
    printf("最大值为%f",max(array,n));
}


void enter(double array[][NUMBER2],int NUMBER1,int NUMBER2)
{
    for(i=0;i<NUMBER1;i++)
    {
        for(n=0;n<NUMBER2,n++)
        {
            scanf("%d",&array[i][n]);
        }
    }
    return 0;
}


void output(double array[][NUMBER2],int NUMBER1,int NUMBER2)
{
    for(i=0;i<NUMBER1;i++)
    {
        for(n=0;n<NUMBER2,n++)
        {
            printf("array[%d][%d]=%f",i,n,array[i][n]);
        }
    }
    return 0;
}


void average1(double array[][NUMBER2])
{
    int a=0,b=0,c=0;
    a=(array[0][0]+array[0][1]+array[0][2]+array[0][3]+array[0][4])/3;
    b=(array[1][0]+array[1][1]+array[1][2]+array[1][3]+array[1][4])/3;
    c=(array[2][0]+array[2][1]+array[2][2]+array[2][3]+array[2][4])/3;
    
    return 0;
}


double average2(double array[][NUMBER2])
{
    int d=0,e=0,f=0,h=0;
    d=array[0][0]+array[0][1]+array[0][2]+array[0][3]+array[0][4];
    e=array[1][0]+array[1][1]+array[1][2]+array[1][3]+array[1][4];
    f=array[2][0]+array[2][1]+array[2][2]+array[2][3]+array[2][4];
    h=(d+e+f)/5;
    
    return h;
}


double max(double array[][NUMBER2],int n)
{
    int i,max;
    for(i=0,max=array[0][0];i<NUMBER1;i++)
    {
        for(n=0;i<NUMBER2;n++)
        {
            if(max<array[i][n])
            max=array[i][n];
        }
    }
    
    return max;
}

能告诉我各位都是怎么解决错误的吗,解决错误的步骤是什么?
搜索更多相关主题的帖子: double max int array printf 
2017-12-03 23:01
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
收藏
得分:0 
你的 a b c定义成int,后面输出的时候应该用 %d
NUMBER1 和 NUMBER2 不需要传递参数,全局的,可以在函数内部直接拿来用
函数声明的时候 int 后面要加上参数的名称
还有函数里的 for 循环,i 是没有定义的,改成 int i = 0,版本较低的话可以在循环外定义先
后面 for 循环里的 n 同上
void 不需要 return,或者可以改成 <code>ret
2017-12-03 23:31
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
用了double就必须用%lf对应
max(array,n) 这个n是main里定义的,你传送时没赋值,子函数里的n不能作用于main里。
2017-12-04 11:18
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
另外for语句里(;;;)你用的,号。
2017-12-04 11:22
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
收藏
得分:0 
各个函数中的变量都是局部变量,如a,b,c等,仅在本函数内部有效。
即使名字相同,也是不同的变量,无法传递到main函数中的a,b,c
2017-12-04 18:17
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
以下是引用Jonny0201在2017-12-3 23:31:59的发言:

你的 a b c定义成int,后面输出的时候应该用 %d
NUMBER1 和 NUMBER2 不需要传递参数,全局的,可以在函数内部直接拿来用
函数声明的时候 int 后面要加上参数的名称
还有函数里的 for 循环,i 是没有定义的,改成 int i = 0,版本较低的话可以在循环外定义先
后面 for 循环里的 n 同上
void 不需要 return,或者可以改成 <code>ret

第四条“函数声明的时候 int 后面要加上参数的名称”这个是不一定要加上参数名称的吧,我记得书上是这么写的,例如:void show_n_char(char,int);
2017-12-09 16:11
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 3楼 虫眼
谢谢!
2017-12-09 20:36
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 5楼 liaohs
谢谢!
2017-12-09 20:37
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
收藏
得分:0 
回复 2楼 Jonny0201
谢谢!
2017-12-09 20:37
快速回复:不知道怎么解决这个出错
数据加载中...
 
   



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

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