vyl02810370 2022-09-21 19:41 采纳率: 100%
浏览 29
已结题

蟠桃记输出错误(语言-c语言)

题目描述
孙悟空在大闹蟠桃园的时候,第一天吃掉了所有桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。这下可把神仙们心疼坏了,请帮忙计算一下,第一天开始吃的时候桃子一共有多少个桃子。
输入
输入数据有多组,每组占一行,包含一个正整数n(1≤n≤30),表示只剩下一个桃子的时候是在第n天发生的。 输入以0结束。
输出
对于每组输入数据,输出第一天开始吃的时候桃子的总数,每个测试实例占一行。
样例输入
2
4
0
样例输出
4
22

我的代码:
#include <stdio.h>

int main(void)
{
int day[10],i=0,n;
int sum=1,j=0;
scanf("%d",&day[0]);
while (day[i]!=0)
{
scanf("%d",&day[i+1]);
i++;
}
while (j<i)
{
while (day[j]>1)
{
sum=(sum+1)*2;
day[j]--;
}
printf("%d\n",sum);
j++;
}
return 0;
}
为什么输入为2 3 4时输出为4 22 190

  • 写回答

2条回答 默认 最新

  • 梦里逆天 2022-09-21 20:45
    关注

    你要把sum=1放到while循环中,即每次输出完后,新的循环都要初始化

    #include <stdio.h>
    
    int main(void)
    {
    int day[10],i=0,n;
    int sum, j=0;
    scanf("%d",&day[0]);
    while (day[i]!=0)
    {
        scanf("%d",&day[i+1]);
        i++;
    }
    while (j < i)
    {
        sum = 1;
        while (day[j] > 1)
        {
            sum = (sum+1) * 2;
    //        printf("%d", sum);
            day[j]--;
        }
        printf("%d\n",sum);
        j++;
    }
    return 0;
    }
    
    #include <stdio.h>
    
    int main(void)
    {
        int n;
        int sum;
        while (scanf("%d", &n) && n)
        {
            sum = 0;
            int temp = 1;
            while (--n)
            {
                sum = (temp + 1) * 2;
                temp = sum;
            }
            printf("%d\n", sum);
        }
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 已采纳回答 9月21日
  • 创建了问题 9月21日

悬赏问题

  • ¥20 数学建模数学建模需要
  • ¥15 c语言数据结构实验单链表的删除
  • ¥15 关于#lua#的问题,请各位专家解答!
  • ¥15 什么设备可以研究OFDM的60GHz毫米波信道模型
  • ¥15 不知道是该怎么引用多个函数片段
  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决