1樓:匿名使用者
在第一個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();
程式執行結果見插圖。
2樓:我是比丘猴
樓主你好~~
按照你的程式,你可能對於水仙話數有誤解...
首先,水仙花數是指一個 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()
希望樓主能看明白哈~~祝樓主學習進步~望採納~謝謝~
3樓:1024程式設計師
c語言經典案例之水仙花數
4樓:那風依舊在吹
s==(a*a*a+b*b*b+c*c*c),這個的結果不可能是1,所以printf根本不執行,所以沒輸出
5樓:知道
#include "stdio.h"
main()}}
getch();}
6樓:
方法一:
#include
#include
int main()
return 0;
}方法二:
#include
#include
int main()}}
return 0;}
7樓:趙小程
你沒int main ()
c語言程式設計輸出所有的“水仙花數”。
8樓:匿名使用者
運用vc++6.0編譯執行:
#include
int main()
return 0;}
9樓:匿名使用者
#include
void main()}}
}我自己想的!呵呵,這是本人做出來的第一個c語言程式
10樓:
最基本的方法是列舉法,但時間複雜度較高,不過剪枝後還可以,不慢。
當然也可以用貪心法解決
*****==回答樓下朋友的問題**********=本人是學pascal的,對c語言不太熟悉,能讀懂,但寫還有點困難。見諒!
11樓:匿名使用者
main()
getch();
}樓上能把另外2種演算法 仔細描述下麼?謝謝
12樓:渾含蓮
建議你和程式設計老師當面**一下這道題目,注意學習一下程式設計的思路
c語言:輸出100-999中所有水仙花數。
13樓:會飛的小兔子
//輸出水仙花
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");/*每一行後換行*/
14樓:匿名使用者
在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();
15樓:1024程式設計師
c語言經典案例之水仙花數
16樓:
printf("%d is a daffodil number.\n", i); // <-- 加個 \n
17樓:
水仙花數是指一個 n 位數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。判斷一個數是否為水仙花數需要拆分數位,求冪再相加。不過這道題限定了範圍,都是三位數,所以可以使用3重迴圈分別代表3個數位,這樣就省去了拆分的麻煩。
**如下:
#include
int main()
18樓:匿名使用者
這個應該是很長的一段語句,建議你找王靜騰飛園的朋友來幫助你進行解答。
19樓:小蘂
#include
main()}
20樓:聚光扒土機
printf("%d is a daffodil number\n.", i);就行了
21樓:匿名使用者
再輸出內容後加\n換行
22樓:快樂峰喃
#include
#include
void main()}
c語言題目:輸出所有的“水仙花數”,並輸出其總個數。所謂“水仙花數”是指一個3位數,其各位數字的立... 30
23樓:匿名使用者
具體bai
程式如下:
#include
void main()
}printf("\n水仙花數的個數為\t%d",count);
printf("\n");
}執行結果如下
24樓:因團囡
#include
int main()}}
return 0;
}一共四個
25樓:匿名使用者
#include
void main()}
26樓:
#include "stdio.h"
main()
} printf("\n一共有答%d個水仙花數\n",m);
return 0;}
C語言程式設計輸出所有的“水仙花數”
運用vc 6.0編譯執行 include int main return 0 include void main 我自己想的 呵呵,這是本人做出來的第一個c語言程式 最基本的方法是列舉法,但時間複雜度較高,不過剪枝後還可以,不慢。當然也可以用貪心法解決 回答樓下朋友的問題 本人是學pascal的,對...
用c 求所有水仙花數,如何求取水仙花數?
解題思路 水仙花數是指乙個n位正整數 n 3 如果這個數的每個位上的數字的n次冪之和等於它本身 例如 1 3 5 3 3 3 153 就稱這個數為水仙數。所以,要判斷乙個數是不是水仙數,關鍵就是要取得各個位上的數字,然後累計它們的n次方和,再進行判斷。取得各個位上的數字可以通過取餘運算子 和除號 來...
輸入正整數m和n輸出m到n中所有水仙花數?用c語
1.水仙花數是指乙個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身。例如 1 3 5 3 3 3 153 include bool isdaffodil int num return sum num int main 皮飇湛依凝 for迴圈 行水仙花數沒 於1000 用數證明 in...