C语言:玫瑰花数

题目:在这里插入图片描述

思路:这里采用循环的方法,输入若干个数,一个一个处理然后输出结果,再处理下一个,直到读不到数据了就跳出。

#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小白,还需要继续努力啊

此处附上大佬的代码:

在这里插入图片描述
大佬说把这个看懂以后分离数字的问题基本上就不愁了,嗯,加油。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值