为啥不能进循环
#include<stdio.h>main()
{
int i=0,n=1,t=0;
long s;
scanf("%ld",&s);
for(n;s/(10^n)==0;n++)
{
i=s%(10^n)-i;
if (i%2==0)
t=i*(10^(n-1)+t;
}
printf("%d",t);
}
为啥不能进循环,在线等,急 s/(10^n)==0等于0循环,看你输入什么数了啊。 #include<stdio.h>
main()
{
int i=0,n=1,t=0;
long s;
scanf("%ld",&s);
for(n;s/(10^n)==0;n++)
{
i=s%(10^n)-i;
if (i%2==0)
t=i*(10^(n-1)+t;
}
printf("%d",t);
}
===================
1. 第二行:int main(void)
2. 第七行:n未定义
3. 第十一行:括号不匹配,应该在行尾加上括号
4. 第十四行:return 0;写一下吧
至于为什么不会跳出循环,在外面定义好n后因为每次判断都在第八行(原第七行,因为加上n的定义变成了第八行),控制流不会跳出循环。
s/(10^n)==0你要它成立才进入循环啊,这就要看你s输入什么数了 本帖最后由 BFSDT 于 2018-4-28 22:40 编辑
s是整型,(10^n)也是整型,使用/会进行截断处理,要使s/(10^n)==0为真的时候才会进入循环,所以必须满足s小于(10^n),
(10^n)每次循环的数值依次为11 8 9 14 15 12 13 2 3 0,所以s要进入第一次循环,必须小于11,要进入第二次循环,必须小于8,以此类推。
还有t=i*(10^(n-1)+t;要改成t=i*(10^(n-1))+t;
页:
[1]