c語言輸出所有水仙花數,C語言程式設計輸出所有的「水仙花數」。

時間 2021-08-30 11:20:53

1樓:我是比丘猴

樓主你好~~

按照你的程式,你可能對於水仙話數有誤解...

首先,水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153或3^3+7^3+0^3=370)

注意:是每個 位上 的數字。

而你的原**寫的效果是,例如第一次迴圈1^3+10^3+100^3=111,這樣的表示是錯的,按定義應該是判斷1^3+1^3+1^3 是否等於111,當然明顯是不等的,所以111不是水仙花數。

而且這個**還要考慮一件事,就是除了最高位百位外,十位和個位都有可能是0,所以,分別代表十位和個位的b與a應當從0開始迴圈到9,而百位的c則是從1迴圈到9~~

綜上所述,修改的**如下:

#include

void main()

希望樓主能看明白哈~~祝樓主學習進步~望採納~謝謝~

2樓:樹舟矯又柔

不是**的問題,是你在原先的工程上又新建了檔案,導致出現了兩個main函式

解決方案是,先關閉當前工程,從新建一個新工程

或者更簡單的方法,先退出ide,然後重新開啟.c檔案,讓ide自己新建工程

3樓:莊政警

給你改了下

#include

void main()}}}

4樓:

private sub command1_click()for i = 100 to 999

j = left(i, 1)

k = mid(i, 2, 1)

l = right(i, 1)

if j ^ 3 + k ^ 3 + l ^ 3 = i thenprint i

end if

next i

end sub

輸出後總共只有4個

153 370 371 407

1000以內就是這麼多

5樓:匿名使用者

#include

void main()}}

}我自己想的!呵呵,這是本人做出來的第一個c語言程式

6樓:

最基本的方法是列舉法,但時間複雜度較高,不過剪枝後還可以,不慢。

當然也可以用貪心法解決

*****==回答樓下朋友的問題**********=本人是學pascal的,對c語言不太熟悉,能讀懂,但寫還有點困難。見諒!

7樓:匿名使用者

main()

getch();

}樓上能把另外2種演算法 仔細描述下麼?謝謝

8樓:守住⒈份堅持

#include

main()}}}

c語言 輸出所有水仙花數

9樓:匿名使用者

在第一個for迴圈前面給s賦值時,a、b、c的值沒有初始化,所以整個s=100*a+10*b+c是不確定的值,程式執行便會出錯!

建議修改:將語句s=100*a+10*b+c放到條件語句if(s==(a*a*a+b*b*b+c*c*c))之前,這樣s得到的是確定值,程式執行正常。

修改後源程式如下:

#include "stdio.h"

void main()

int a,b,c,s;

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

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

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

s=100*a+10*b+c;

if(s==(a*a*a+b*b*b+c*c*c))printf("%d\n",s);

getchar();

程式執行結果見插圖。

10樓:我是比丘猴

樓主你好~~

按照你的程式,你可能對於水仙話數有誤解...

首先,水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3 + 3^3 = 153或3^3+7^3+0^3=370)

注意:是每個 位上 的數字。

而你的原**寫的效果是,例如第一次迴圈1^3+10^3+100^3=111,這樣的表示是錯的,按定義應該是判斷1^3+1^3+1^3 是否等於111,當然明顯是不等的,所以111不是水仙花數。

而且這個**還要考慮一件事,就是除了最高位百位外,十位和個位都有可能是0,所以,分別代表十位和個位的b與a應當從0開始迴圈到9,而百位的c則是從1迴圈到9~~

綜上所述,修改的**如下:

#include

void main()

希望樓主能看明白哈~~祝樓主學習進步~望採納~謝謝~

11樓:1024程式設計師

c語言經典案例之水仙花數

12樓:那風依舊在吹

s==(a*a*a+b*b*b+c*c*c),這個的結果不可能是1,所以printf根本不執行,所以沒輸出

13樓:知道

#include "stdio.h"

main()}}

getch();}

14樓:

方法一:

#include

#include

int main()

return 0;

}方法二:

#include

#include

int main()}}

return 0;}

15樓:趙小程

你沒int main ()

c語言程式設計輸出所有的「水仙花數」。

16樓:匿名使用者

運用vc++6.0編譯執行:

#include

int main()

return 0;}

17樓:匿名使用者

#include

void main()}}

}我自己想的!呵呵,這是本人做出來的第一個c語言程式

18樓:

最基本的方法是列舉法,但時間複雜度較高,不過剪枝後還可以,不慢。

當然也可以用貪心法解決

*****==回答樓下朋友的問題**********=本人是學pascal的,對c語言不太熟悉,能讀懂,但寫還有點困難。見諒!

19樓:匿名使用者

main()

getch();

}樓上能把另外2種演算法 仔細描述下麼?謝謝

20樓:渾含蓮

建議你和程式設計老師當面**一下這道題目,注意學習一下程式設計的思路

c語言:輸出100-999中所有水仙花數。

21樓:會飛的小兔子

//輸出水仙花

voidnarcissusnumber()if(sum==i)

printf("%d\n",i);

擴充套件資料c語言:輸出9*9口訣

#include"stdio.h"

main()

inti,j,result;

printf("\n");

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

{for(j=1;j<10;j++)

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左對齊,佔3位*/

printf("\n");/*每一行後換行*/

22樓:匿名使用者

在100-999之間的三位數abc,滿足a³+b³+c³=abc,就稱abc為水仙花數。

根據你的描述和提供的**,只需要對輸出的結果進行換行即可,修改後的**如下:

#include

int main()

int i,a,b,c;

for(i=100;i<=999;i++)

a=i/100;

b=i/10%10;

c=i%10;

if(i == a*a*a + b*b*b + c*c*c)

printf("%d is a daffodil number.\n", i);

return 0;

程式執行結果:

擴充套件資料:

除了上面使用的c語言實現外,常用的實現語言還有;

algol**實現「水仙花數」:

begin

integer i,j,k;

for i := 1 step 1 until 9 do

for j := 0 step 1 until 9 do

for k := 0 step 1 until 9 do

if i×i×i + j×j×j + k×k×k = 100×i + 10×j + k then

print (100×i + 10×j + k);

endphp**實現「水仙花數」:

<?php

//使用系統自帶函式,即可實現冪運算,何必畫蛇添足,自己寫函式

functionis_narcissistic($n)

$hundreds=floor($n/100);//分解出百位

$tens=floor($n/10)%10;//分解出十位

$ones=floor($n%10);//分解出個位

return(bool)(pow($hundreds,3)+pow($tens,3)+pow($ones,3)==$n);

for($i=100;$i<1000;++$i)

if(is_narcissistic($i))

echo$i."\n";

die();

23樓:1024程式設計師

c語言經典案例之水仙花數

24樓:

printf("%d is a daffodil number.\n", i); // <-- 加個 \n

25樓:

水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。判斷一個數是否為水仙花數需要拆分數位,求冪再相加。不過這道題限定了範圍,都是三位數,所以可以使用3重迴圈分別代表3個數位,這樣就省去了拆分的麻煩。

**如下:

#include

int main()

26樓:匿名使用者

這個應該是很長的一段語句,建議你找王靜騰飛園的朋友來幫助你進行解答。

27樓:小蘂

#include

main()}

28樓:聚光扒土機

printf("%d is a daffodil number\n.", i);就行了

29樓:匿名使用者

再輸出內容後加\n換行

30樓:快樂峰喃

#include

#include

void main()}

c語言題目:輸出所有的「水仙花數」,並輸出其總個數。所謂「水仙花數」是指一個3位數,其各位數字的立... 30

31樓:匿名使用者

具體bai

程式如下:

#include

void main()

}printf("\n水仙花數的個數為\t%d",count);

printf("\n");

}執行結果如下

32樓:因團囡

#include

int main()}}

return 0;

}一共四個

33樓:匿名使用者

#include

void main()}

34樓:

#include "stdio.h"

main()

} printf("\n一共有答%d個水仙花數\n",m);

return 0;}

c語言編寫水仙花數,C語言程式設計輸出所有的「水仙花數」。

水仙花數 是指一個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身。include int fun int n int main 執行結果 153370 371407 方法 先弄懂什麼是水仙花數 水仙花數是指一個n 3 位數字的數,它等於每個數字的n次冪之和。3位水仙花數 先定義3個...

c語言程式設計題找出所有的水仙花數,水仙花數是指3位數

問明 import org.junit.test public class narcissusnumberfrom module name importfrom module name importfrom module name importfrom module name path to spe...

c 的水仙花數

1.單獨測測你的兩個函式nt power int,int power a,b 是求a的b次是多少的一個函式 注意返回值的型別 int digit int 這個result是求一個數位數的函式 下面是我修改後的 include iostream.h include math.h int digit i...