当前位置:首页 » 编程语言 » c语言153
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言153

发布时间: 2023-01-12 17:23:59

⑴ 用c语言编一个可以列出所有三位数的水仙花数如153=1^3+5^3+3^3;

一、
数学定义:
水仙花数是指一个
n
位正整数
(
n≥3
),它的每个位上的数字的
n
次幂之和等于它本身。
于是三位水仙花数,就是形式为n=100a+10b+c
且n=a*a*a+b*b*b+c*c*c的数值。
其中a∈[1,9]
b,c∈[0,9]
a,b,c∈Z
二、
根据定义,循环遍历100到999,通过除法和模除取出三位上的数字,计算立方和并与原始数值比较,如相等,则为水仙花数,输出即可。
三、
代码:
#include <stdio.h>
int main()
{
int a,b,c,n;
for(n = 100; n <1000; n ++)//遍历
{
a=n/100;//百位
b=n/10%10;//十位
c=n%10;//个位
if(a*a*a+b*b*b+c*c*c==n)//水仙花数
printf("%d\n", n);//输出
}
return 0;
}四、
运行结果:

⑵ 特殊数字的c语言,为什么输出中少了153这个数字呢

xiebangyao1994 的回答点到了点子上
因为你的 pow(a,b) 函数有歧义,导致了不同编译器结果不同
pow返回值是浮点数,而你直接存进了一个整形里,编译器只能自行添加隐式转换
而由于精度误差的原因,算出来的结果很可能是类似
125.00001 或 124.99999
不同编译器可能四舍五入(较常见),取上整(不多见)或者取下整(多见于嵌入式)

你需要把 pow(a,b) 改成 (int)round(pow(a,b)) (round四舍五入,另外round自己出来的结果也是浮点,需要再取成整型)
最好的方法其实还是手工乘三遍啦

PS. 困惑下你用的啥编译器,int没返回值,理应编译不过去的呀

⑶ c语言 求水仙花数 例如 153=1^3+5^3+3^3 求哪里出错 m>=1 n<1000

#include <stdio.h>

void main()
{
int m,n,i,a,b,c,tmp;
printf("输入m,n(0<m<=n<1000)(用逗号隔开): ");
while(scanf("%d,%d",&m,&n))
{
if(0<m && m<=n && n<1000)
break;
printf("输入不合法,请重新输入: ");
}
for(i=m;i<=n;i++)
{
tmp=i;
a=tmp%10;
tmp=tmp/10;
b=tmp%10;
tmp=tmp/10;
c=tmp%10;
if(c) //说明是三位数
{
if(a*a*a+b*b*b+c*c*c==i)
printf("%d ", i);
}
else if(b) //说明是二位数
{
if(a*a+b*b==i)
printf("%d ", i);
}
else //说明是一位数
printf("%d ", i);
}
printf("\n");
}

⑷ C语言编程:如果一个三位数等于它自己的每一位数字的立方之和,则称此数为“水仙化数”,如153=13+53+33

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>

boolisShuixianNumber(intn)
{
inthundred,ten,sigle;
if(n<100||n>999)
{
printf("InputError! ");
exit(-1);
}
hundred=n/100;
ten=(n%100)/10;
sigle=n%10;
if(hundred*hundred*hundred+ten*ten*ten+sigle*sigle*sigle==n)
returntrue;
else
returnfalse;
}
intmain()
{
intm,n;
inti;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
if(isShuixianNumber(i))
printf("%d ",i);
return0;
}

示例运行结果:

100 999

153

370

371

407

⑸ 计算机输入一个三位整数的个位、十位和百位数字之和,例如输入153,结果为9 用c语言编写

#include"stdio.h"
voidmain()
{
inta,b=0;
scanf("%d",&a);
for(inti=1;i<=3;++i)
{
b+=a%10;
a=a/10;
}
printf("%d",b);
}

⑹ c语言中,求“水仙花数”问题。

#include"stdio.h"
main()
{
int i,a=0,b=0,c=0,t;
for(i=100;i<=999;i++)
{
a=i%10;
b=(i/10)%10;
c=i/100;

if(c*100+b*10+c*1==a*a*a+b*b*b+c*c*c)
{
t=i;
printf("%d",t);
}
}

}

if和printf语句都要在循环里面
同时,if语句的条件改为 if(c*100+b*10+c*1==a*a*a+b*b*b+c*c*c)

⑺ C语言作业纠错,题目要求是 找出所有三位数满足其各位数字立方和等于该数本身例如153=1*1*1+5*5*5+3*3*3

#include<stdio.h>
#include<math.h>
intmain()
{
inta,q,w,e;
scanf("%d",&a);

if(a<100||a>999)
printf("error! ");
else
{
for(;a>=100&&a<=999;)
{
a=a+1;
q=a/100;
w=(a-q*100)/10;
e=a-q*100-w*10;
if(a==q*q*q+w*w*w+e*e*e)//少了一个等号,最好写成q*q*q+w*w*w+e*e*e==a,可以防止出错
printf("%d ",a);
else
;

}
}
return0;
}

⑻ C语言题,31、任意输入一个3的倍数的正整数,调用函数fun31()利用m 验证“数字黑洞153”

手机先留个脚印。记得采纳哦

#include<stdio.h>
#include<stdlib.h>
inta[100]={0};
intb[100]={0};
intsum=0;
intct=1;
intct2;
voidinput(intnum)
{
sum=0;
ct=1;
while(num)
{
a[ct]=num%10;
b[ct]=(num%10)*(num%10)*(num%10);
num=num/10;
sum=sum+b[ct++];
}
}

voidprint(void)
{
ct2=ct-1;
while(ct2)
{
printf("%d",b[ct2--]);
}
}

intmain()
{
longintnum;
intljm;
intcter=1;
printf("Pleaseinputanumber ");
scanf("%d",&num);
ljm=num*3;
printf("Thenumbertobetestedis%d. ",ljm);
input(ljm);
while(sum!=153)
{
ljm=sum;
input(ljm);
cter++;
}
printf("%d ",cter);
//print();
system("pause");
return0;
}

⑼ C语言编程 求水仙花数:例如153=1^3+5^3+3^3

#include<stdio.h>

int main()

{int a,b,c;

for(a=1;a<10;a++)

for(b=0;b<10;b++)

for(c=0;c<10;c++)

if(a*a*a+b*b*b+c*c*c==100*a+10*b+c)

printf("%d%d%d=%d^3+%d^3+%d^3 ",a,b,c,a,b,c);

return 0;

}