Logic老吉克 2022-02-17 14:37 采纳率: 50%
浏览 35
已结题

程序输入多组数据时发生错误

问题遇到的现象和发生背景

猴子第一天摘下若干桃子,当即吃了一半,还觉不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天天早上都吃了前一天剩下的一半零一个。到第n(n<=20)天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。
输入格式:
测试数据有多组,处理到文件尾。每组输入天数n。

输出格式:
每组输出第一天摘的桃子数(结果保证在int型范围)。
输入样例:
在这里给出一组输入。例如:

5
10
18
输出样例:
在这里给出相应的输出。例如:

46
1534
393214

问题相关代码,请勿粘贴截图
int n,sum=1,i;
while(scanf("%d",&n) != EOF)//这是我认为的输入多组数据的方法
{
while(n)
{
sum=(sum+1)*2;
n--;
}
if(n==0)
   {
    i=sum/2-1;
   printf("%d\n",i);
   }
 }
运行结果及报错内容

5
10
18
结果
46
49150
-2
以上是输入和运行结果

我的解答思路和尝试过的方法

用这串代码可以解决输入一组数据并运行正确结果
但是输入一组数据时就不行了

我想要达到的结果

46
1534
393214

  • 写回答

4条回答 默认 最新

  • 谛凌 2022-02-17 14:51
    关注

    参考代码:

    #include <stdio.h>
    int main()
    {
        int day,i,s;    /*定义 day、i、s 3 个变董为基本整型*/
        while(scanf("%d",&day) != EOF){
            s = 1;
            for(i=1;i<day;i++)//因为到第day天还剩一个,所以循环day次
            {
                s=(s+1)*2;//倒序求出每天的数量
            }
            printf("%d\n",s);    /* 输出桃子的总数*/
        }
        return 0;
    }
    

    输出为:
    46
    1534
    393214

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月17日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了