标题:买苹果的代码有问题,求各位大神帮忙看下
只看楼主
Itachi0
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-2-9
 问题点数:0 回复次数:11 
买苹果的代码有问题,求各位大神帮忙看下
#include <stdio.h>
main ()
{
    int day,n;
    float money,ave;
    day=0;
    n=1;
    while(n>0&&n<100)
    {
        n=n*2;
        day++;
        money=0.8*n;
    }
    ave=money/day;
    printf("%d %d %f %f",day,n,money,ave);
}
阳阳买苹果,每个苹果0.8元,第一天他买2个,第二天开始每天买前一天的2倍,直到购买的苹果个数不超过100个的最大值,编程求阳阳每天平均花多少钱?
我运行结果天数7,苹果数n=128,懵逼
搜索更多相关主题的帖子: include money 苹果 
2017-02-09 15:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
直到购买的苹果个数不超过100个的最大值
有歧义呀,如果是 直到当天购买的苹果个数不超过100个的最大值,那代码是
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned app = 0; // 柰数
    unsigned day = 0; // 天数
    for( unsigned n=2; n<=100; n*=2 )
    {
        ++day;
        app += n;
    }
    printf( "day=%u apple=%u mony=%.1f avg=%.1f\n", day, app, app*0.8, app*0.8/day );
}
输出 day=6 apple=126 mony=100.8 avg=16.8

如果是 直到总共购买的苹果个数不超过100个的最大值,那代码是
程序代码:
#include <stdio.h>

int main( void )
{
    unsigned app = 0; // 柰数
    unsigned day = 0; // 天数
    for( unsigned n=2; app+n<=100; n*=2 )
    {
        ++day;
        app += n;
    }
    printf( "day=%u apple=%u mony=%.1f avg=%.2f\n", day, app, app*0.8, app*0.8/day );
}
输出 day=5 apple=62 mony=49.6 avg=9.92


[此贴子已经被作者于2017-2-9 16:06编辑过]

2017-02-09 15:32
yanzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:104
专家分:372
注 册:2017-2-7
得分:0 
这个错的
---------
程序代码:
#include <stdio.h>
main()
{
    int day, n;
    float money, ave;
    day = 0;
    n = 1;
    while (n>0 && n<50)//改成n小于50
    {
        n = n * 2;
        day++;
        money = 0.8*n;
    }
    ave = money / day;
    printf("%d %d %f %f", day, n, money, ave);
}


改成这样
程序代码:
#include <stdio.h>

int main(void)
{
    int day = 0, n = 1, sum = 0;
    float money, ave;

    for(;;)
    {
        n *= 2;
        sum += n;
        if (sum >= 100)
        {
            sum = sum - n;
            break;
        }
        day++;
        money = sum*0.8;
    }
    ave = money / day;
    printf("day = %d\nsum = %d\nmoney = %.2f\nave = %.2f\n", day, sum, money, ave);

    return 0;
}


[此贴子已经被作者于2017-2-9 17:34编辑过]

2017-02-09 15:43
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
#include <stdio.h>
main ()
{
    int day,n;
    float money=0,ave;     //money赋初始值
    day=0;
    n=1;
    while(n>0&&n<100)
    {
        n=n*2;
        day++;
        money+=0.8*n;     //自加
    }
    ave=money/day;
    printf("%d %d %f %f",day,n,money,ave);
}

早知做人那么辛苦!  当初不应该下凡
2017-02-09 15:56
Itachi0
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-2-9
得分:0 
回复 2楼 rjsp
不应该是64吗?
2017-02-09 17:30
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
#include<stdio.h>
int main()
{
    int day=0;int apples=2;int apple_whole=0;float money=0.0f;
    while(apples<100)//如果是要求苹果总数不超过100改为apple_whole<100
    {
        apple_whole+=apples;
        money+=0.8*apples;
        apples*=2;
        day++;
    }
    printf("平均每天花钱:%f",money/day);
    return 0;
}
2017-02-09 17:33
Itachi0
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-2-9
得分:0 
回复 3楼 yanzy
谢谢
2017-02-09 17:33
Itachi0
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-2-9
得分:0 
回复 4楼 炎天
这个运行结果和我的是一样的,苹果数都是128,天数是7
2017-02-09 17:37
Itachi0
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2017-2-9
得分:0 
回复 6楼 yangfrancis
这个运行结果是16.几,答案给的是8.5
2017-02-09 17:42
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
得分:0 
第n天   1   2   3   4   5
     2   4   8   16  32
总只数   2   6   14  30  62
62*0.8/5=9.92


[此贴子已经被作者于2017-2-9 17:59编辑过]


早知做人那么辛苦!  当初不应该下凡
2017-02-09 17:56



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




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

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