c语言买苹果问题,C语言阳阳买苹果

1,C语言阳阳买苹果#include int main() { int a=0; int t; float r; for(t = 2; t <= 100; t *=2) a+=t; r = a*0.8; printf("The result is %f\n", r); return 0; }
2 , C语言编程经典282例阳阳买苹果从你提出的疑问看,思路你也没看懂 。注意程序语句执行的顺序,循环体中money+=0.8*n是花钱的累加和,day++是天数:n*=2是计算下一天买苹果的数量 。初始值n=2,d=0执行while循环money+=0.8*n;//第一天花的钱day++;//1天,看到了吧 , 买2个苹果是第1天,而不是第0天n*=2;//这条语句你也写错了 。计算第二天买的苹果数量n<100,继续执行循环money+=0.8*n;//两天花的钱day++;//2天n*=2;//计算第三天买的苹果数量n<100 , 继续执行,依次类推 。直到n*=2 , n=128,不满足循环条件,退出循环,此时n的值是128没错,可是并没有计入花的钱以及天数 。花的钱为5天花钱的总和,天数为5天 。
3,c语言买苹果问题i=2是第一天 第一天的总价格你算的是sum=0.8*2*2明显不对?。揖醯糜Ω孟萻um=a*2;a=a*2;这样你这个题目还是说的不清楚,第一天买两个,第二天呢,第三天呢,也是两个吗?还算价格加倍,买的数量也加倍呢?看明白了题目,就是简单的数学题,没必要纠结于什么结果 。IBM的笔记本业务已经被联想收购了 。苹果的独显价格在1W2以上 。你给的价位,还要是ThinkPad的,只能是低端的SL系列 。你自己看看ThinkPad的sl系列把 , 13-15寸都有 。不对 。int main() int i,j=0,c=0; //i表示每天苹果个数,j表示天数,c表示总数 for(i=2;c<=100;i=i*2)c+=i;j++; } printf("%d天 , 平均每天价格为:%.2f\n",j,(0.8*c)); return 0;}【c语言买苹果问题,C语言阳阳买苹果】
4,编写一个C语言程序求用40元钱买苹果梨和西瓜总数能买100个已#include <stdio.h>main()int na,np,nw,n;// 个数,总个数double va=0.4,vp=0.2,vw=4;// 单价double v;//总费用for (na=0;na<=100;na++)for (np=0;np<=100;np++)for (nw=0;nw<=100;nw++)v=na*va+np*vp+nw*vw;n=na+np+nw;if (n==100 && v==40.0)//若总个数和总费用符合要求,则输出结果:printf("Apple=%dPear=%dWatermel=%d\n",na,np,nw);}return 0;}结果:Apple=5 Pear=90 Watermel=5Apple=24 Pear=72 Watermel=4Apple=43 Pear=54 Watermel=3Apple=62 Pear=36 Watermel=2Apple=81 Pear=18 Watermel=1Apple=100 Pear=0 Watermel=05,C语言放苹果问题可以用递归的方法实现 。#include<stdio.h> int fun(int m,int n,int j); int main(void) printf("Please input : m n\n"); scanf("%d%d",&m,&n); if(n>m) n=m; /*因为盘子是相同的,所以,盘子数>苹果数的情况与n=m的情况相同*/ s=fun(m,n,0); printf("%d\n",s); } int fun(int m,int n,int j) if(n==1) return m>=j; for(i=j;i<m;i++) s+=fun(m-i,n-1,i); /*递归调用,先从m个苹果中拿出i个放在第一个盘子,再计算m-i个苹果放入n-1个盘子的问题(注意:为了不重复,放入下一个盘子的苹果数要大于等于i个)*/ return s; }都是相同的东西.怎么都是1种放法啊,你要求的是不是组合啊?可是...你的题意没弄明白6,c语言错误 阳阳买苹果每个苹果08元第一天他买2个第二天开#include<stdio.h>void main() int day=1,num,t=0,i=2; double average,money; while(t<100)//判断条件是所有买的苹果数小于100t+=i;i=i*2;day++; }num=t-i/4;//计算出总共的个数 money=num*0.8;//计算出花的所有的钱printf("the nums of apple is %d\n",num); printf("the totle money is %f\n",money); average=money/(day-2); printf("the ave price is %f\n",average);}建议写成这样 。。最简单 。。你的问题我如下注释:#include<stdio.h>void main()int day=0,i=2;float everage,money=0.0;//建议改成double类型while(i<100) money=0.8*i+money; day=day+1;i=i*2; if (i>100)//if判断多余,没意义 。i=i/2;break;}}printf("the num of apple is %d\n",i); printf("the totle money is %d\n",money);//那个%d改成%f,结果就没那么大了 。。everage=money/day; printf("%d\n",everage);//这里的%d改成%f}把我说的那些改过来就可以正常运行了 。。。另外你的那个运算有问题 , 你再看看那些时间和个数问题 。。你这个程序最大的错误是money=0.8*i+money; 这句在循环里i 的值是累计的,你money在i 的基础上再累加,这就造成了money的值非常大#include<stdio.h>void main()int day=1,i=2;//这里day的初始值应该为1 , 因为第1天买了2个float everage,money=0.0;while(1)//永真循环,靠if 来判断结束,否则day会多加1天i*=2; if (i>100)break; }day++;}money = 0.8*i; //在这里统计总金额everage=money/day;printf("the num of apple is %d\n",i); printf("the totle money is %d\n",money); everage=money/day; printf("%d\n",everage);}int x = 2;int day = 1;float money = 2 * 0.8;while (1)if (2 * x >= 100)break;}elsex = 2 * x;money += x*0.8;day++;}}printf("%.6f\n", money / day);getchar();return 0;

    推荐阅读