输入两个正整数a和n c语言,输入两个正整数m和n,输出m到n之间的所有水仙花数

公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解。

话题:输入两个正整数m和n,输出m到n之间的所有水仙花数.水仙花数是指各回答:#include#includeint main(){int i,m,n,x,y,z,flag=0;printf("Inpu m:");scanf("%d",amp;m);printf("Input n:");scanf("%d",amp;n);if(mn||ngt;999){printf("Erroe!\n");return 0;}for(i=m;ilt;=n;i++){x=i%10;y=(i/10)%10;z=i/100;if(pow(x,3)+pow(y,3)+pow(z,3)==i amp;amp; i!=1000){flag=1;printf("%d\n",i);}}if(flag==0)printf("No number of daffodils!\n");return 0;}其中表达式是循环条件,语句为循环体。话题:编写码,输出所有的“水仙花数”,所谓“水仙花数”是指一个3

回答:main(){int n,a,b,c;for(n=100;n{a=n/100;b=n%100/10;c=n%10;if(a*a*a+b*b*b+c*c*c==n) printf("%d\n",n);}}

3068c57253026e8b313ea0d35201efb0.png

话题:输入两个正整数m和n,(m=1,n=1000),回答:int is(int number)//定义一个返回值为int型的函数,命名为is,并定义一个int型参数number{int temp,digit,sum,res;temp=number;//将传递进来的参数number赋值给tempsum=0;//初始化和为0while(number!=0){//如果传递进来的数字不为0,执行while循环digit=number%10;//获取个位上的数字sum=sum+pow(digit,3);//将和加上上行码所的个位数字的立方和number=number/10;//将数字除以10,继续while循环}if(sum==temp)//根据sum的结果判断是否为水仙花树res=1;elseres=0;return res;}这个函数用于判断是否是水仙花数(也就是你说的各位数字立方和等于本身)你这个程序有一个bug,就是没有判断的输入是否为合法的。对输入的m n的值范围没有进行判断。可进行相应的修改,使程序更完美。话题:所谓的“水仙花数”,是指一个三位数,其各位数字立方和等于该数回答:这个程序根本得不到水仙花数。现修改如下:#include"stdio.h"#include"stdlib.h"#include"math.h"int main(){int i,j,k,a,b,c,m=0;int z[60]={0};for(i=1;ifor(j=0;jfor(k=0;k{a=pow(i,3);b=pow(j,3);c=pow(k,3);if((i*100+j*10+k)==a+b+c){z[m]=a+b+c;printf("%5d\n",z[m]);m++;}}system("pause");

参考回答:#include lt;stdio.hgt;int main(){int n=0,i=0,j=0,k=0;//n表示这个三位数,i,j,k分别百位,十位,个位.for(n=100; nlt;=999; n++){i = n / 100;//i表示百位数j = (n / 10) % 10;//j表示十位数k = n % 10;//k表示个位数if(n == (i*i*i + j*j*j + k*k*k)){printf("%d ",n);}}}话题:c语言、、输出所有水仙花数。。是指一个三位数,其各个数字的立方回答:#include#includevoid main(){int a,b,c,d,f;for(a=100;ab=a%10;c=a%100;c=c/10;//这儿有误!这儿有误!这儿有误!这儿有误!这儿有误!d=a/100;f=pow(b,3.0)+pow(c,3.0)+pow(d,3.0);//VC++ 2005 中,3改为3.0if(a==f)//判断用==号;判断用==号;判断用==号;判断用==号;判断用==号;printf("%d\n",a);}}

参考回答:c=a%100;c=c%10;这里错了,应该是c=a%100;c=c/10,这样求出来才是十位的数字

7d2624471300d73769f43823ed06841c.png话题:求所有的水仙花数:即一个三位数,其各位数字立方和等于该数本身,回答:if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);

参考回答:应该是==,而且排一下版更好看,vc++6.0自带排版功能的#includeint main(){ int a,b,c;int i;for(a=1;a for(b=0;b for(c=0;c { i=100*a+10*b+c;if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);}return 0;}话题:输出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位回答:#includevoid main(){int i,j,k,n;for(i=1;ifor(j=0;jfor(k=0;k{n=i*100+j*10+k;if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))printf("水仙花数为:%d\n",n);}}

参考回答:C和C++应该差不多写法,首先要获取各位数然后乘方相加判断就可以了http://blog.csdn.net/xianfajushi/article/details/22802201http://zhidao.baidu.com/open/question/detail?appid=10002qid=466506588227a5f548e5f811话题:输入正整数n,输出所有的n位水仙花数,水仙数指n位正整数,它的各回答:事实上,水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。你这样求出来的三位数水仙花数是对的,其他的定义都搞错了,求出来的肯定也是错误的。话题:”水仙花数”是指这样的数,其各位数字的立方和等于该数本身.编写程回答:1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。2.程序源码:main(){int i,j,k,n;printf("'water flower'number is:");for(n=100;n{i=n/100;/*分解出百位*/j=n/10%10;/*分解出十位*/k=n%10;/*分解出个位*/if(i*100+j*10+k==i*i*i+j*j*j+k*k*k){printf("%-5d",n);}}printf("\n");}

5a5ba62b58289d4effc7e93656d7f2ba.png话题:输入您的问题编写程序:输出所有的3位水仙花数,所谓水仙花数就是回答:#include void main(){int n,a,b,c;printf("请输入n的值:\n");scanf("%d",n);if (n999){ // 要用{}括起来printf("error!\n请重新输入\n"); }else{a=n/100;printf("a is %d\n",a);b=(n-a*100)/10;printf("b is %d\n",b);c=n%10;printf("c is %d\n",c);if (n==a*a*a+b*b*b+c*c*c) // 第一次编的时候只用了一个“=”,结果成了赋值语句了,到这里永远正确{ // 结果所有的数都输出了是 narcissus numberprintf("n=%d is a narcissus number\n",n);}else{printf("n=%d is not a narcissus number\n",n);}}}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值