求助这段代码在牛客上输出的结果和在DEVC++上输出的结果怎么不一样
今天在牛客上做题题目:链接:
有一个数字魔法,给你一个正整数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.
求问原因 整型不赋值 有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义的时候初始化下!!
你的整数 i 没有赋值,所以两种地方结果不一样
我猜是这样
你给 i 赋值0再试试结果 洋洋痒 发表于 2021-4-30 06:54
整型不赋值 有的编译器默认值为0 或者null,有的是一个非常大的负值,或者是最小的一个数!一般都会定义 ...
ok这次对了,谢谢大佬
页:
[1]