❶ c语言,输出水仙花数。输入3<=n<=7,输出所有的n位水仙花数。 为什么 我运行时 输入n然后回车之后 没反应
while(h!=0)?
你的h都没有初始化,它不等于0等于啥呀?直接就果断退出了。你这是跟你的程序开玩笑呢,它当然啥也不给你输出了
❷ “水仙花数”C语言程序
代码如下:
#include <stdio.h>
int main()
{
printf("输出水仙花数: ");
int i=100;
for( ; i<1000; i++){
int num_0 = i%10;
int num_1 = i/10%10;
int num_2 = i/10/10%10;
if(i==(num_0*num_0*num_0+num_1*num_1*num_1+num_2*num_2*num_2))
printf("%d ", i);
}
return 0;
}
(2)水仙花数c语言3都7位扩展阅读:
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
n为1时,自幂数称为独身数。显然,0,1,2,3,4,5,6,7,8,9都是自幂数。
n为2时,没有自幂数。
n为3时,自幂数称为水仙花数,有4个:153,370,371,407;
n为4时,自幂数称为四叶玫瑰数,共有3个:1634,8208,9474;
n为5时,自幂数称为五角星数,共有3个:54748,92727,93084;
n为6时,自幂数称为六合数, 只有1个:548834;
n为7时,自幂数称为北斗七星数, 共有4个:1741725,4210818,9800817,9926315;
n为8时,自幂数称为八仙数, 共有3个:24678050,24678051,88593477;
n为9时,自幂数称为九九重阳数,共有4个:146511208,472335975,534494836,912985153;
n为10时,自幂数称为十全十美数,只有1个:4679307774。
❸ C语言,输出水仙花数。输入3<=n<=7,输出所有的n位水仙花数。 为什么 我运行时 输入n然后回车之后 没反应
#include<stdio.h>
intpower(intx,inty)//不要用pow当函数名,因为math.h里有pow的系统函数,会有歧义
{
inti=1,a=1;
while(i<=y)
{
a=a*x;
i++;
}
returna;
}
intmain(void)
{
inti,h,n,s,m=0,b;
printf("输入n位数字(3<=n<=7)");
scanf("%d",&n);
for(s=power(10,n-1);s<power(10,n);s++)
{
b=s;//循环不要改变s的值,因为最后还要s++
//之前的程序改变了s的值,所以执行完100的判断后,s=1,没法继续下面的
m=0;//m每累加完一个数的记得清零
for(i=1;i<=n;i++)
{
h=b%10;//每次改变b的值
m=m+power(h,n);
b=b/10;
}
if(m==s)printf("%d ",m);//用s去比较
}
return0;
}
❹ c语言求水仙花数!!!!
#include"stdio.h"
intmain(intargc,char*argv[]){
intn,i,j,k,t,s,m,x;
printf("Pleaseentern(int2<n<8)... n=");
if(scanf("%d",&n)!=1||n<3||n>7){
printf("Inputerror,exit... ");
return0;
}
for(k=1,i=0;i<n;i++,k*=10);
for(i=k/10;i<k;i++){
for(s=0,t=i;t>0;t/=10){
for(x=1,j=t%10,m=n;m--;x*=j);
s+=x;
}
if(s==i)
printf("%d ",s);
}
printf(" ");
return0;
}
运行样例:
❺ C语言求3-7位数的水仙花数程序改错
你的程序主要问题是pow函数返回的是double类型的数,需要强制转换成long型整数,
sum每计算完一个数要重置为0,还有就是输出语句printf函数的变量不需要取地址符.
改完的程序如下(见图,改动的地方见注释)
❻ C语言的水仙花数,怎么搞
#include<stdio.h>
#include<math.h>
int main() {
int N,i,sum,n;
scanf("%d",&N);//输入
for(i=pow(10,N-1);i<pow(10,N);i++)//N是几位数,循环就从10的N-1次方至N次方,比如说N为3,那就是10的2次方(100)至10的3次方(1000)
{
sum=0;
n=i;
while(n)
{
sum+=pow(n%10,N);//计算每一位的N次方的和至sum
n=n/10;
}
if(sum==i) printf("%d\n",i);//比较和是否与原数i相等,如果相等则为水仙花数并输出
}
}
❼ 水仙花数的c语言编程。
C语言具体实现水仙花过程如下:
一、问题描述:
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。
二、问题分析:
根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
三、算法设计:
“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:
for(n=10; n<1000; n++) { //...... }
四、完整的代码:
❽ 输出三位到七位所有的水仙花数
# include <stdio.h>
void main()
{
int i,j,k,n;
printf("水仙花数: ");
for (n=100; n<1000; n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)
{
printf("%d ",n);
}
}
}
编程界面和输出结果: