| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1276 人关注过本帖
标题:求平均值不能输出结果 求求哥哥姐姐帮个忙找下原因
只看楼主 加入收藏
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
刚才给你调试了   有错误
2009-11-10 10:49
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2065: 'ave' : undeclared identifier
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2109: subscript requires array or pointer type
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2106: '=' : left operand must be l-value
执行 cl.exe 时出错.

cfhyghg.obj - 1 error(s), 0 warning(s)
2009-11-10 10:50
dong152liang
Rank: 2
来 自:廊坊
等 级:论坛游民
帖 子:56
专家分:29
注 册:2009-11-8
收藏
得分:0 
你的程序不对  d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2065: 'ave' : undeclared identifier
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2109: subscript requires array or pointer type
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : warning C4244: '=' : conversion from 'float ' to 'int ', possible loss of data
d:\tools\microsoft visual studio\common\msdev98\bin\cfhyghg.c(15) : error C2106: '=' : left operand must be l-value
执行 cl.exe 时出错.

cfhyghg.obj - 1 error(s), 0 warning(s)

2009-11-10 10:59
hsm8592
Rank: 2
等 级:论坛游民
帖 子:55
专家分:57
注 册:2009-11-6
收藏
得分:0 
谢谢LZ了 我这没编译器
2009-11-10 11:01
yangsail
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2008-9-12
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a[3][4]={{60,70,80,90},{40,50,60,80},{60,30,50,70}};
    int i,j;
    float sum=0;
    float  ave[4]={0};
    for(j=0;j<4;j++)
    {   
        sum=0;
        for(i=0;i<3;i++)
        {
            sum=sum+a[i][j];
        }
        ave[j]=sum/3;
    }
    for(j=0;j<4;j++)
    {
        printf("ave[%d]=%f\n",j,ave[j]);
    }
}

试试我这个,,每门课的平均成绩分别为53.3332,50.0000,63.3332,80.0000.
2009-11-10 11:29
yangsail
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2008-9-12
收藏
得分:0 
我按照了你这个题目 :有三个学生,上四门课,要求输入全部学生的各门成绩,并分别求出每门课的平均成绩。
2009-11-10 11:31
yangsail
Rank: 1
等 级:新手上路
帖 子:8
专家分:3
注 册:2008-9-12
收藏
得分:0 
如果你还需要求每个学生的平均成绩,也简单的。。。
还有可以先打印出3个学生四门课的成绩 的数组  最后一行打印每门课的平均成绩,最后一列打印每个学生的平均成绩。。
2009-11-10 11:36
不屈的生命
Rank: 1
来 自:杭州电子科技大学
等 级:新手上路
帖 子:11
专家分:5
注 册:2009-11-11
收藏
得分:0 
回复 7楼 hnliji1107
#include<stdio.h>
void main()
{
    int a[3][4]={{60,70,80,90},{40,50,60,80},{60,30,50,70}};
    int i,j;
    float sum=0;
    float  ave[3][4];
    for(j=0;j<3;j++)
    {
        for(sum=0,i=0;i<4;i++)
            sum=sum+a[j][i];
        ave[j][4]=sum/4;
    }   

    for(i=0;i<3;i++)
        for(j=0;j<5;j++)
            printf("ave[%d][%d]=%.2f\n",i,j,ave[i][j]);   //修正处,显示数组所有成员
    getch();
}
结果
图片附件: 游客没有浏览图片的权限,请 登录注册


与众不同; 独树一帜; 求同存异.
2009-11-15 21:59
不屈的生命
Rank: 1
来 自:杭州电子科技大学
等 级:新手上路
帖 子:11
专家分:5
注 册:2009-11-11
收藏
得分:0 
接楼上, 这个结果说明, a[0][4]->a[1][0] 实际上在编译的时候已经转换了,即a[0][4]变换为a[1][0], 而a[0][4]实际上不存在.
编译掩盖了你的错误, C语言规定长度为N的数组, 其下标应该为 0->N-1.
其他两个依以上原来类推, 请你们以后编程的时候注意概念性问题和基本规则.不然以后程序编得庞大时,错误!!!可想而知!

与众不同; 独树一帜; 求同存异.
2009-11-15 22:05
不屈的生命
Rank: 1
来 自:杭州电子科技大学
等 级:新手上路
帖 子:11
专家分:5
注 册:2009-11-11
收藏
得分:0 
最终修正程序如下:
#include<stdio.h>
void main()
{
    int a[3][4]={{60,70,80,90},{40,50,60,80},{60,30,50,70}};
    int i,j;
    float sum=0;
    float  ave[3];
    for(j=0;j<3;j++)
    {
        for(sum=0,i=0;i<4;i++)
            sum=sum+a[j][i];
        ave[j]=sum/4;
    }   
    for(i=0;i<3;i++)
        printf("%5.2f ",ave[i]);
    printf("\n");
}

与众不同; 独树一帜; 求同存异.
2009-11-15 22:12
快速回复:求平均值不能输出结果 求求哥哥姐姐帮个忙找下原因
数据加载中...
 
   



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

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