| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1606 人关注过本帖
标题:用数组求平均数,但运行时崩溃。
只看楼主 加入收藏
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:31
专家分:32
注 册:2022-3-19
结帖率:50%
收藏
 问题点数:0 回复次数:12 
用数组求平均数,但运行时崩溃。
原因是:在网上看到。用一般方法时,数组的大小是固定的。
    所以用以下代码来改善一下。于是自己也写下来,但运行时崩溃了。
    网上也说明了‘在std=c99的标准下’。

源码如下:
程序代码:
/********用数组求平均数********/
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x; 
    double sum = 0.0;
    int count;
    
    printf("请确定输入数字的数量:");
    scanf("%d", &count);
    
    if( count > 0 )
    {
        int number[count];
        scanf("%d", &x);
        
        while( x != -1 )
        {
            number[count] = x;
            sum += x;
            count++;
            scanf("%d", &x);
        }        
        printf("average:%f\n", sum / count);
    }
    
    system( "pause" );
    return 0;
}
搜索更多相关主题的帖子: count 运行 数组 崩溃 平均数 
2022-12-11 11:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
你把完整的题目贴一下嘛,
你的代码我看不懂,怎么又是count,又是x!=-1
2022-12-11 14:30
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:31
专家分:32
注 册:2022-3-19
收藏
得分:0 
回复 2楼 rjsp
描述:用户输入一组数字,输入-1表示结束。求这组数字的平均数。
-----------------------------------------------------------
输入样例(一行):
1    2    3    4    -1
——————————————————————————————
输出样例(一行):
2.500000
------------------------------------------------------------

不求知道一切,尽心发现一件。
2022-12-11 15:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
这题目也太含糊了,起码要说一下这个“数字”的类型和取值范围,数量的取值范围。

程序代码:
#include <stdio.h>

int main( void )
{
    size_t count = 0;
    double sum = 0;

    for( double v; scanf("%lf",&v)==1 && v!=-1; ++count )
        sum += v;

    printf( "%f\n", sum/count );
}
2022-12-11 16:39
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
number[count] = x;

数组越界了吧?

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2022-12-11 17:03
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:31
专家分:32
注 册:2022-3-19
收藏
得分:0 
回复 5楼 renkejun1942
我写到自己的编辑器上的时候也是怎么想的,可是网上就这么放出来了。

不求知道一切,尽心发现一件。
2022-12-11 19:42
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 6楼 小白级的小黑
要么是你抄错了,要么是代码不是C语言。
发链接来看看吧。

number[count] = x;
这代码就已经越界了。
更别提后面的
count++
了。

我本打算帮你改一下,发现你所谓的用数组算平均数,跟本就多此一举。你还是再研究下你的代码吧。

number[count] = x;
            sum += x;
            count++;
            scanf("%d", &x);

你的数组压根就没排上用场。所以弄个数组的意义到底在哪里?

[此贴子已经被作者于2022-12-11 19:51编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2022-12-11 19:44
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:31
专家分:32
注 册:2022-3-19
收藏
得分:0 
回复 4楼 rjsp
您回复我的这些代码。这里for循环中的条件判断我有点模糊。
就是这个:scanf("%lf",&v) == 1
这个scanf的返回值是:只要输入了值,就返回真吗?

不求知道一切,尽心发现一件。
2022-12-11 19:54
小白级的小黑
Rank: 2
等 级:论坛游民
帖 子:31
专家分:32
注 册:2022-3-19
收藏
得分:0 
回复 7楼 renkejun1942
我誊写的时候只保留了截图
(我知道论坛中有关代码的图片尽量少发,可我找不到那个视频了。求谅解!)

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


[此贴子已经被作者于2022-12-11 20:07编辑过]


不求知道一切,尽心发现一件。
2022-12-11 20:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 8楼 小白级的小黑
scanf成功接受几个字段就返回几,遇到错误则返回EOF
2022-12-11 20:19
快速回复:用数组求平均数,但运行时崩溃。
数据加载中...
 
   



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

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