鱼C论坛

 找回密码
 立即注册
查看: 3086|回复: 2

[已解决]求助这段代码在牛客上输出的结果和在DEVC++上输出的结果怎么不一样

[复制链接]
发表于 2021-4-29 22:46:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天在牛客上做题
题目:链接:
有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1
不断重复这样的运算,经过有限步之后,一定可以得到1
牛牛为了验证这个魔法,决定用一个整数来计算几步能变成1



我的代码:#include<stdio.h>
int main()
{
        int a,b,c,i;
        scanf("%d",&a);
        if(a!=1)
        {
                while(a>1)
                {
                        if(a%2==0)
                        {
                                a=a/2;
                                ++i;
                        }
                        else
                        {
                                a=a*3+1;
                                ++i;
                        }
                       
                }
        printf("%d",i);
        }
        else
        printf("1");
}
输入3时
在DEV上是7;
在牛客上的自测是8.
求问原因
最佳答案
2021-4-30 06:54:17
整型不赋值    有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义的时候初始化下!!
你的整数 i 没有赋值,所以两种地方结果不一样
我猜是这样
你给 i 赋值0再试试结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-30 06:54:17 | 显示全部楼层    本楼为最佳答案   
整型不赋值    有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义的时候初始化下!!
你的整数 i 没有赋值,所以两种地方结果不一样
我猜是这样
你给 i 赋值0再试试结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-4 20:00:31 | 显示全部楼层
洋洋痒 发表于 2021-4-30 06:54
整型不赋值    有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义 ...

ok这次对了,谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 01:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表