题目:一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且多吃一个,到了第10天就剩余一个桃子,用多种方法求出这群猴子原来共摘了多少桃子。
请输入最后剩余的桃子数:1
请输入数桃子之前猴子吃了多少次了?-2
您输入的次数有误!
请输入数桃子之前猴子吃了多少次了?9
猴子总共的桃子数目为:1534
根据题目要求自己编写主函数并且加入求桃子数目的函数
#include<stdio.h>
int taozi(int a, int b)
{
int sum=a;
for(b;b>0;b--)
{
sum=2*(++sum);
}
return sum;
}
int main(int argc, char** argv)
{
int a,b;
int k=1;
printf("请输入最后剩余的桃子数:");
scanf("%d",&a);
while(k)
{
printf("请输入数桃子之前猴子吃了多少次了?");
scanf("%d",&b);
if(b>=0)
{
k=0;
printf("猴子总共的桃子数目为:%d\n",taozi(a,b));
}
else
printf("您输入的次数有误!\n");
}
return 0;
}
代码学习
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv)
{
int total=0; //总数
int eat_time=0; //次数
printf("请输入最后剩余桃子数:");
scanf("%d",&total);
while(true) //正确输入所吃次数
{
printf("请输入数桃子之前猴子吃了多少次了?");
scanf("%d",&eat_time);
if(eat_time<0)
{
printf("您输入的次数有误!\n");
continue;
}
else
break;
}
while(eat_time>0) //逆向求解桃子次数
{
total=2*(total+1);
eat_time--;
}
printf("猴子总共的桃子数目为:%d\n",total);
system("pause");
return 0;
}
注意函数的定义:int taozi(int a, int b)
注意输入函数&:scanf("%d",&total);没有&程序不能继续运行,也不报错
while(true)、break、continue组成的循环输入
while(true) //正确输入所吃次数
{
printf("请输入数桃子之前猴子吃了多少次了?");
scanf("%d",&eat_time);
if(eat_time<0)
{
printf("您输入的次数有误!\n");
continue;
}
else
break;
}