A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a1130003724 中级黑马   /  2014-5-9 16:48  /  2404 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 a1130003724 于 2014-5-21 14:20 编辑

每个苹果0.8元,第一天买2个苹果,从第二天开始,每天买前一天的两倍,直至购买的苹果个数达到不超过最大值100。编写程序求每天平均花多少钱?

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

10 个回复

倒序浏览
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int day = 1;//天数
  5.         int num = 2;//苹果数
  6.         while(1)
  7.         {
  8.                 if(num>100)
  9.                         break;
  10.                 num = num + num*2;
  11.                 day++;
  12.         }
  13.         double avg_money = num*0.8/day;
  14.         printf("%.2f\n",avg_money);
  15. }
复制代码


希望帮助你!
回复 使用道具 举报
#include <stdio.h>

int main()
{
        int day = 1;//天数
        int num = 2;//苹果数
        while(1)
        {
                if(num>100)
                        break;
                num *= 2;
                day++;
        }
        double avg_money = (num * 0.8)/day;
        printf("%.2f\n",avg_money);
}
上边的代码有点小错误,变成3倍了
回复 使用道具 举报
本帖最后由 傘が咲く 于 2014-5-10 02:52 编辑

发下咱俩都搞错了,哈哈,你看看下面的代码对不:lol
回复 使用道具 举报
本帖最后由 傘が咲く 于 2014-5-10 02:51 编辑

发现上面我的答案不对,下面是改正后的代码::L
  1. #include <stdio.h>

  2. int main()
  3. {
  4.    
  5.     int day = 1;
  6.     int num = 2;
  7.     int sum = 0;//苹果总数
  8.     while(1)
  9.     {
  10.         if(sum>100)
  11.             break;
  12.         num = num*2;//每天的苹果数
  13.         sum += num;
  14.         day++;
  15.     }
  16.     double avg_money = sum*0.8/day;
  17.     printf("%.2f\n",avg_money);
  18. }
复制代码



回复 使用道具 举报
  1. # include<stdio.h>
  2. void main(){
  3. int appleTotal=2;    //第一天时,买了两个苹果,所以苹果总数为2
  4. int appleTemp=2;     //用于记录前一天买的苹果的个数
  5. int day=1;    //共经过了几天,因为已知第一天买两个苹果,所以初始值为1
  6. float money;   //用于存放买苹果所花的钱的总数。
  7. float aver    //用于存放平均每天买苹果花去的钱数
  8. while(1){
  9.   appleTemp=appleTemp*2;   //计算当天应买多少个苹果
  10.   if((appleTotal+appleTemp)>100){ //计算至昨天为此,苹果数量是否已经到了最大值
  11.    break;  //如果苹果数量到达最大值,跟出循环。
  12.   }
  13.   day++;   //经过的天数加1
  14.   appleTotal=appleTotal+appleTemp;//计算苹果总数。
  15. }
  16. money=appleTotal*0.8;  //计算总价
  17. aver=money/day;   //计算平均每天花的钱数。
  18. printf("经过%d天一共买了%d个苹果,共花去了%f元。\n",day,appleTotal,money);
  19. printf("所以平均每天买苹果花去:%f元。\n",aver);
  20. }
复制代码

点评

很赞。条理清楚,解释清楚。  发表于 2014-5-13 08:50

评分

参与人数 1技术分 +1 收起 理由
脸皮猴 + 1

查看全部评分

回复 使用道具 举报
楼上的写的不错
回复 使用道具 举报
  1. #import <Foundation/Foundation.h>
  2. #include <math.h>
  3. /*每个苹果0.8元,第一天买2个苹果,从第二天开始,每天买前一天的两倍,直至购买的苹果个数达到不超过最大值100。编写程序求每天平均花多少钱?*/
  4. // 分析每天买前一天的两倍可以认为是2的n次方。表达n的x次方用pow(n,x);
  5. int main(int argc, const char * argv[])
  6. {
  7.    
  8. //    记录买苹果开始的天数
  9.     int day = 1 ;
  10. //    记录买苹果的总数
  11.     int sum = 2 ;
  12. //    记录第1天买苹果个数
  13.     int num = 2;
  14. //    总花费
  15.     double totalmoney;
  16. //    平均花费
  17.     double averagemoney;
  18.     while (num < 100){
  19.             day++;
  20. //     第n天买苹果个数
  21.     int num = pow(2, day);
  22. //     判断第n天买苹果个数是否大于100(此处不知道你说的100 是总个数还是当天的个数,暂且按当天个数)。
  23.         if (num>100) {
  24.                 break;
  25.             }
  26. //     将苹果个数累加得到总苹果数。
  27.     sum += num;
  28.     NSLog(@"第%d天买了个%d苹果",day,num);
  29.     NSLog(@"%d天总共买了个%d苹果",day,sum);
  30.         }
  31. //    总花费
  32.     totalmoney = sum * 0.8;
  33. //    平均花费(此处day-1是因为判断num>100之前,执行了day++)
  34.     averagemoney = totalmoney/(day-1);
  35.    
  36.     NSLog(@"买苹果花费%f",totalmoney);
  37.     NSLog(@"平均每天花费%f",averagemoney);
  38.    
  39.     return 0;
  40. }
复制代码
回复 使用道具 举报
傘が咲く 发表于 2014-5-10 02:21
发现上面我的答案不对,下面是改正后的代码:

谢谢    帮大忙了   灰常感谢
回复 使用道具 举报

感觉   好复杂    头好昏
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马