| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 953 人关注过本帖
标题:请帮忙看下下面的程序,有什么错误,就是要实现输入任意的数,求出最大最小 ...
只看楼主 加入收藏
MICHEALJORRY
Rank: 1
等 级:新手上路
帖 子:16
专家分:7
注 册:2010-3-17
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:7 
请帮忙看下下面的程序,有什么错误,就是要实现输入任意的数,求出最大最小值和平均值,最好能在我的基础上帮编译一个正确的程序
#include<stdio.h>
void main()
{
    int max,lowest,average,num[50],i,j,sum;
    printf("请输入i的值");
scanf("%d",&i);
printf("请逐个输入num的值");
for(sum=0,max=num[0],j=0;j<=i;j++)
{
scanf("%d",num[j]);
if(max<=num[j]) max=num[j];
if(lowest>=num[j]) lowest=num[j];
sum=sum+num[j];
average=sum/i;
printf("最大值为%d\n",max);
printf("最小值为%d\n",lowest);
printf("平均值为%d\n",average);
}
}
搜索更多相关主题的帖子: 基础 编译 平均值 
2010-03-27 21:58
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:6 
#include<stdio.h>
void main()
{
    int *max,*lowest,num[50],i,j,sum;
    float average;
    printf("请输入i的值");
    scanf("%d",&i);
    if (i > 50 || i <=0 ) return;
    printf("请逐个输入num的值");
    for(sum=0,max=&num[0],lowest = &num[0], j=0;j<i; j++)
    {
        scanf("%d",&num[j]);
        if(*max<=num[j]) max=&num[j];
        if(*lowest>=num[j]) lowest=&num[j];
        sum=sum+num[j];
    }
    average= (float)sum/i;
    printf("最大值为%d\n",*max);
    printf("最小值为%d\n",*lowest);
    printf("平均值为%f\n",average);
}


[ 本帖最后由 ldg628 于 2010-3-28 00:09 编辑 ]
2010-03-27 22:10
bihai
Rank: 2
等 级:论坛游民
帖 子:9
专家分:13
注 册:2010-3-24
收藏
得分:6 
上面那个改的程序输出的最小值不正常,average= (float)sum/i;中的float是什么意思?
可以解释一下吗?
非常感谢!
2010-03-27 23:52
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
囧。。。代码在2楼改好了,max,lowest我把它们定义为指针类型了

average= (float)sum/i; 这个(float)是把sum强制转换为float型,这样sum/i计算的结果也是float型的了

2010-03-28 00:13
lukunstriker
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2010-3-29
收藏
得分:6 
回复 4楼 ldg628
你好,请问为什么得改成指针型的?
2010-03-29 20:38
bihai
Rank: 2
等 级:论坛游民
帖 子:9
专家分:13
注 册:2010-3-24
收藏
得分:0 
二楼的回帖看到啦,非常感谢!膜拜
只是不知道第一次改的程序为什么最小值无法输出呢?
max=num[0],lowest=num[0]是因为num[0]无法同时赋值于两个变量吗?
如果我把lowest的赋为10000的话程序就可以正常运行!
这是为什么呢


[ 本帖最后由 bihai 于 2010-3-29 22:37 编辑 ]
2010-03-29 22:27
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:0 
用指针的原因是当如果不是指针的max,min引用num[0]时,num[0]是一个还未初始化的值,当输入了num[0]的值时,max,min仍然是那个未初始化的值,而用指针可以避免也这个问题
2010-03-29 23:17
bihai
Rank: 2
等 级:论坛游民
帖 子:9
专家分:13
注 册:2010-3-24
收藏
得分:0 
啥也不说啦,就俩字:感谢!
2010-03-30 10:59
快速回复:请帮忙看下下面的程序,有什么错误,就是要实现输入任意的数,求出最大 ...
数据加载中...
 
   



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

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