c语言 输入一个正整数n(3<=n<=7),输出所有的n位水仙花数?

作者&投稿:惠侨 (若有异议请与网页底部的电邮联系)
c语言 输入一个正整数n(3<=n<=7),输出水仙花数。水仙花数是一个n位正整数,~

你的sum, a, t每次循环开始要归为初始值。
还有你搞得太麻烦了,直接t = pow(10, n); sum = t * 10 - 1 就好了

while(h!=0)?
你的h都没有初始化,它不等于0等于啥呀?直接就果断退出了。你这是跟你的程序开玩笑呢,它当然啥也不给你输出了

#include <stdio.h>


int main(){

int n,i,a,b=0,c1,c2,c3,c4,c5,c6,c7,s[1000];

printf("输入位数:
");

scanf("%d",&b);

if(b<3||b>7) return 44;

a=b;

n=1;

do{

n*=10;

a--;

}while(a);

a=0;

printf("%d
",b);

for(i=n/10;i<n;i++){

if(b==3)

{

c1=i%10;

c2=i/10%10;

c3=i/100;

if(i==c1*c1*c1+c2*c2*c2+c3*c3*c3)

s[a++]=i;

}

else if(b==4)

{

c1=i%10;

c2=i/10%10;

c3=i/100%10;

c4=i/1000;

if(i==c1*c1*c1*c1+c2*c2*c2*c2+c3*c3*c3*c3+c4*c4*c4*c4)

s[a++]=i;

}

else if(b==5)

{

c1=i%10;

c2=i/10%10;

c3=i/100%10;

c4=i/1000%10;

c5=i/10000;

if(i==c1*c1*c1*c1*c1+c2*c2*c2*c2*c2+c3*c3*c3*c3*c3+c4*c4*c4*c4*c4+c5*c5*c5*c5*c5)

s[a++]=i;

}

else if(b==6)

{

c1=i%10;

c2=i/10%10;

c3=i/100%10;

c4=i/1000%10;

c5=i/10000%10;

c6=i/100000;

if


(i==c1*c1*c1*c1*c1*c1+c2*c2*c2*c2*c2*c2+c3*c3*c3*c3*c3*c3+c4*c4*c4*c4*c4*c4+c5*c5*c5*c5*c5*


c5+c6*c6*c6*c6*c6*c6)

s[a++]=i;

}

else if(b==7)

{

c1=i%10;

c2=i/10%10;

c3=i/100%10;

c4=i/1000%10;

c5=i/10000%10;

c6=i/100000%10;

c7=i/1000000;

if


(i==c1*c1*c1*c1*c1*c1*c1+c2*c2*c2*c2*c2*c2*c2+c3*c3*c3*c3*c3*c3*c3+c4*c4*c4*c4*c4*c4*c4+c5*


c5*c5*c5*c5*c5*c5+c6*c6*c6*c6*c6*c6*c6+c7*c7*c7*c7*c7*c7*c7)

s[a++]=i;

}


}

for(i=0;i<a;i++){

printf("%d ",s[i]);

}

printf("
");

return 0;

}




金湾区19432063672: c语言 输入一个正整数n(3<=n<=7),输出所有的n位水仙花数? -
宰贪科素: while(h!=0)? 你的h都没有初始化,它不等于0等于啥呀?直接就果断退出了.你这是跟你的程序开玩笑呢,它当然啥也不给你输出了

金湾区19432063672: 用c语言编写程序 输入一个正整数n
宰贪科素: /*用c语言编写程序 输入一个正整数n,求1到n的数中1出现的个数*/#include"stdio.h"int count(int n){ int i,j,c=0; for(i=1;i

金湾区19432063672: 用C语言编程 :输入一个正整数n 用3种方法分别计算下式的和 保留4位小数 -
宰贪科素: / printf(", total).4f\ i < for (j = i;= n;/ total += temp;= n; double total = 0.h" double total = 0:%:%;;= n;嵌套循环, temp = 1.0, total); j >.0; i <.0; total = total + temp.0; i;;/%d" j, &n); j--) temp = temp / i++) { temp = temp / }return total;double fact(int n) ...

金湾区19432063672: 编写一个C程序,输入一个整数n,根据n的值在屏幕上输出相应图案 例如:输入 n = 3,则在屏幕上输出 -
宰贪科素: #include <stdio.h>int main(void) {int i, j, k;int n; printf("n=");scanf("%d", &n); printf("\n\n\n");for (i=0; i<n; i++){for (j=0; j<i+1; j++){printf("*");}for (k=0; k<2*(n-1-i)-1; k++){printf(" ");}if (n-1 == i){for (j=0; j<i; j++){printf(...

金湾区19432063672: 用C语言编写程序从键盘输入一个正整数数n,输出n,是什么情况? -
宰贪科素: #include <stdlib.h> #include <stdio.h> #include <string.h> void main() { int a; char str1[200]; printf("Please input a integer: "); scanf("%d", &a); itoa(a, str1, 10); printf("The length of integer=%d", strlen(str1)); }C语言实现如下:#include<...

金湾区19432063672: 简单的c语言!题目:输入1个三位正整数N,输出其个位、十位和百位. -
宰贪科素: #includevoid main() { int ge,shi,bai; int i,j; printf("请输入一个3位数:\n"); scanf("%d",&j); ge=j%10; shi=j%100/10; bai=j/100; printf("输入的百位数是%d,十位数是%d,个位数是%d",bai,shi,ge); }

金湾区19432063672: 从键盘输入一个正整数N,请输出大于N的第3个素数用C语言怎么做 -
宰贪科素: #include<stdio.h> void main() { int n,i,flag=0; scanf("%d",&n); while (n++) { for (i=2;i<=n;i++)//判断素数 if ((n)%i==0) break; if (n==i) { flag++; if (flag==3)//输出第三个素数并推出while循环 { printf("第三个素数:%d\n",n); break; } else n++; } } }

金湾区19432063672: 用c语言的循环语句,输入一个正整数n,在输入n个整数,输出最小值. -
宰贪科素: 1、新建一个工程和.c文件 ,输入头文件和主函数. 2、定义变量类型和赋初值. 3、输入整数. 4、用for循环计算整数的长度. 5、用for循环将各位数字存入数组中. 6、用for循环输出数组. 7、编译,输出最小值.

金湾区19432063672: c语言怎么写出:“输入一个正整数n,再输入n个整数,输出最小值”的代码 -
宰贪科素: #include int main() { int last=0,cnt=0,num; while(1) { printf("please input number"); scanf("%d\n",&num); cnt++; if(last>num) last=num; if(cnt>0) printf(); return 0; }

金湾区19432063672: C语言,输入一个正整数n,计算下式求出e的值( -
宰贪科素: 1 2 3 4 5 6 7 8#include <stdio.h> voidmain() { intn;doublek=1,s=1; for(n=1;1/k>=1e-6;n++) {k=k*n;s+=1/k;} printf("e=%.5f",s); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网