标题:萌新求助~~求n个数的平均数,运行是对的但提交上去错了
只看楼主
小神女
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2020-10-21
结帖率:100%
 问题点数:0 回复次数:10 
萌新求助~~求n个数的平均数,运行是对的但提交上去错了
程序代码:
#include<stdio.h>
int main()
{
    float a,b,ave;
    int n,i;
    a=0;
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%f ",&b);
        a+=b;
    }
    ave=a/n;
    printf("%.2f\n",ave);
return 0;    
}
[local]1[/local]
搜索更多相关主题的帖子: 个数 运行 平均数 提交 scanf 
2020-10-24 16:25
小神女
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2020-10-21
得分:0 

我来啦我来啦~
2020-10-24 16:30
小神女
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2020-10-21
得分:0 

我来啦我来啦~
2020-10-24 16:30
小神女
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2020-10-21
得分:0 
#include<stdio.h>
int main()
{
    float a,b,ave;
    int n,i;
    a=0;
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%f",&b);
        a+=b;
    }
    ave=a/n;
    printf("%.2f\n",ave);
return 0;   
}

自己做出来了

我来啦我来啦~
2020-10-24 17:40
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:0 
回复 4楼 小神女
你4楼这个程序能运行?

算了,编辑修改,告诉你错在什么地方

 变量 a 没有赋初值,scanf()中使用了回车符

程序代码:
#include<stdio.h>
int main()
{
    float a=0,b,ave;    // a 没有赋初值,输出结果存在不确定性
    int n,i;
    a=0;
    scanf("%d",&n);     // 多了一个换行符,有残留给第一个 b 值的可能
    for(i=1;i<=n;i++)
    {
        scanf("%f",&b);
        a+=b;
    }
    ave=a/n;
    printf("%.2f\n",ave);
return 0;   
}


[此贴子已经被作者于2020-10-24 20:08编辑过]

2020-10-24 17:57
小神女
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2020-10-21
得分:0 
回复 5楼 风过无痕1989
谢谢!!我稀里糊涂改的,提交上去对了就没管。谢谢你,我现在知道错在哪里了

我来啦我来啦~
2020-10-28 11:08
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用风过无痕1989在2020-10-24 17:57:50的发言:

你4楼这个程序能运行?

算了,编辑修改,告诉你错在什么地方

 变量 a 没有赋初值,scanf()中使用了回车符


#include<stdio.h>
int main()
{
    float a=0,b,ave;    // a 没有赋初值,输出结果存在不确定性
    int n,i;
    a=0;
    scanf("%d",&n);     // 多了一个换行符,有残留给第一个 b 值的可能
    for(i=1;i<=n;i++)
    {
        scanf("%f",&b);
        a+=b;
    }
    ave=a/n;
    printf("%.2f\n",ave);
return 0;   
}

第一个scanf前面就是给a赋值了
多个换行 但在这里不会导致出错
后面的%f后面的空格倒是有必要删掉
残留给b 看不懂是什么意思

https://zh.
2020-10-28 16:27
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
得分:0 
回复 7楼 lin5161678
多个换行 但在这里不会导致出错

你用DEV运行一下他原来的程序,看看出不出错;
后面的%f后面的空格倒是有必要删掉
残留给b 看不懂是什么意思

scanf()函数输入完成后,回车符残留在输入缓冲流里的例子,并不少见,运行一个下面这个程序
程序代码:
#include<stdio.h>
int main()
{
    int m,e,choice1;
    char choice2;
    double a,cost;
    printf("Enter how much gas a = ");
    scanf("%lf",&a);
    printf("90# gas seclet 90\n");
    printf("93# gas select 93\n");
    printf("97# gas select 97\n");
    printf("Enter choice1:");
    scanf("%d",&choice1);
        
    switch(choice1)
    {
    case 90#:cost=6.95 * a;break;
    case 93#:cost=7.44 * a;break;
    case 97#:cost=7.93 * a;break;
    default:cost=0.00;break;
    }
   
    printf("self-service select m\n");
    printf("ancillary-service select e\n");
    printf("Enter choice2:");
    scanf("%c",&choice2);

    if(choice2 == 'm')
    {
        cost=cost * (1-0.05);
    }
    else if(choice2 == 'e')
    {
        cost=cost * (1-0.03);
    }
    else
        printf("\n");
        printf("You need pay %.2f yuan\n",cost);
    return 0;
}
2020-10-29 02:05
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
以下是引用风过无痕1989在2020-10-29 02:05:10的发言:


我知道\n滞留缓冲区的问题
你不知道什么情况下\n滞留缓冲区会导致问题

这里的scanf 一个是%d 一个是%f 根本不会被\n干扰
开始处理%f之前遇到\n 会字节跳过
正在处理%f遇到\n 会结束读取
完全正常合理

https://zh.
2020-10-29 09:25
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
纠正
残留就常量 --> 残留就残留

https://zh.
2020-10-29 09:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503615-1-1.html




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

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