题目:
思路:这里采用循环的方法,输入若干个数,一个一个处理然后输出结果,再处理下一个,直到读不到数据了就跳出。
#include <stdio.h>
int main()
{
int n,b,c,a,d,sum;
while (scanf("%d",&n)==1)
{
a=n/1000;
b=(n-a*1000)/100;
d=n%10;
c=(n-a*1000-b*100-d)/10;
sum=b*b*b*b+c*c*c*c+a*a*a*a+d*d*d*d;
if(sum==n)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
经过大佬的点拨,历时几天,我终于写出来这题目。主要是知识面太浅了,比如说:循环里面不能有两个scanf,这点我就不晓得。
这里还存在一个问题:do while语句和while语句的区别(在这个题中,输入0个数据时两个语句的结果是不一样的)。
do while不管输入值是否满足while里面的循环条件,都会先执行一次循环,再去判断,所以当输入0个数据时,它会输出No;而while则是先判断再循环,所以输出为空。
作为大一IT小白,还需要继续努力啊
此处附上大佬的代码:
大佬说把这个看懂以后分离数字的问题基本上就不愁了,嗯,加油。