我要被入门题劝退了

p1089

别人的AC代码

#include<iostream>
using namespace std;
int money,cost,mama,flag=1,monthofdeath;  //money代表在津津手里的钱,cost代表花费的钱,mama代表在妈妈手里的100元的张数,flag=1代表尚未透支,monthofdeath代表死亡月份 
int main ()
{
    for(int i=1;i<=12;i++)
    {
        money+=300;  //每个月津津手里的钱都会增加300 
        cin>>cost;     //输入这个月的花销 
        money-=cost;     // 津津手里的钱减去这个月的花销等于剩余的钱 
           if(money<0)     //若剩余的钱小于0, 
           {     
              flag=0;      //旗帜倒下,即已经透支 
              monthofdeath=i;    //输出死亡月份 
              break;            //终止循环 
           }
        mama+=money/100;    //剩余的钱整除100即为在妈妈手里的100元的张数 
        money%=100;         //用100去模剩余的钱即为月底幸存的钱         
    }    
    if(flag==1)      //若旗帜未倒下,即坚持到年底还没有透支 
    {
        money+=mama*120;    //剩余的钱 
        cout<<money;
    }            
    else
    {
        cout<<-monthofdeath;
    }    
    return 0;
}

我就把变量声明移了一下,就wrong了,也不知道为什么,呜呜呜,这道题我写了好久都没有AC,我真的是一个废物啊啊啊啊啊。

#include<iostream>
using namespace std;
  //money代表在津津手里的钱,cost代表花费的钱,mama代表在妈妈手里的100元的张数,flag=1代表尚未透支,monthofdeath代表死亡月份 
int main ()
{int money,cost,mama,flag=1,monthofdeath;
    for(int i=1;i<=12;i++)
    {
        money+=300;  //每个月津津手里的钱都会增加300 
        cin>>cost;     //输入这个月的花销 
        money-=cost;     // 津津手里的钱减去这个月的花销等于剩余的钱 
           if(money<0)     //若剩余的钱小于0, 
           {     
              flag=0;      //旗帜倒下,即已经透支 
              monthofdeath=i;    //输出死亡月份 
              break;            //终止循环 
           }
        mama+=money/100;    //剩余的钱整除100即为在妈妈手里的100元的张数 
        money%=100;         //用100去模剩余的钱即为月底幸存的钱         
    }    
    if(flag==1)      //若旗帜未倒下,即坚持到年底还没有透支 
    {
        money+=mama*120;    //剩余的钱 
        cout<<money;
    }            
    else
    {
        cout<<-monthofdeath;
    }    
    return 0;
}

我好像明白了一点

  • flag 被显式初始化为 1:flag=1
  • moneycost 和 mama 没有显式初始化,它们默认初始化为 0,因为它们是整型变量(int 类型)。
  • 在C++中,局部变量(即在函数或代码块内部声明的变量)不会自动初始化为0或任何其他默认值。如果局部变量没有被显式初始化,它们的值是未定义的。这意味着在实际使用这些变量之前,你不能假定它们具有任何特定的值。
  • 在C++中,全局变量如果没有显式地初始化,它们会被默认初始化为0。
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值