|
10鱼币
为什么无论输入什么,程序既不运算也不输出答案?
Problem Description
一个有趣的四位数2992,这个数,它的十进制数,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。
Input
输入含有一些四位正整数,如果为0,则输入结束。
Output
若n为Sky数,则输出“#n is a Sky Number.”,否则输出“#n is not a Sky Number.”。每个结果占一行。注意:#n表示所读入的n值。
Sample Input
2992
1234
0
Sample Output
2992 is a Sky Number.
1234 is not a Sky Number
这是我的代码- #include<stdio.h>
- int sky_judge1(int system,int num)
- {
- int judge=0;
- while(num)
- {
- judge+=num%system;
- num=num/system;
- }
-
- return judge;
- }
- bool sky_judge2(int num)
- {
- int judge1=sky_judge1(num, 10);
- int judge2=sky_judge1(num, 12);
- int judge3=sky_judge1(num, 16);
-
- if(judge1==judge2&&judge1==judge3&&judge2==judge3)
- return true;
- else
- return false;
- }
- int main()
- {
- int num;
- while(scanf("%d",&num)!=EOF)
- {
- if(num=0)
- {break;}
-
- if(sky_judge2(num))
- {printf("%d is a Sky Number\n",num);}
- else
- {printf("%d is not a Sky Number\n",num);}
- }
-
- return 0;
- }
复制代码
你的if语句写错了 if(num=0) 直接给他赋值为零了
- #include<stdio.h>
- int sky_judge1(int system,int num)
- {
- int judge=0;
- while(num)
- {
- judge+=num%system;
- num=num/system;
- }
-
- return judge;
- }
- bool sky_judge2(int num)
- {
- int judge1=sky_judge1(num, 10);
- int judge2=sky_judge1(num, 12);
- int judge3=sky_judge1(num, 16);
-
- if(judge1==judge2&&judge1==judge3&&judge2==judge3)
- return true;
- else
- return false;
- }
- int main()
- {
- int num;
- // printf("%d",10%292) ;
- while(scanf("%d",&num)!=EOF)
- {
- if(num==0)
- {break;}
-
- if(sky_judge2(num))
- {printf("%d is a Sky Number\n",num);}
- else
- {printf("%d is not a Sky Number\n",num);}
- }
-
- return 0;
- }
复制代码
|
最佳答案
查看完整内容
你的if语句写错了 if(num=0) 直接给他赋值为零了
|