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語言寫出判斷三位數是否為水仙花數的程式
涼城以北丶 include void main 一 c語言 c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯 處理低階儲存器 產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標...
c語言每輸出數換行,C語言,每輸出5個數換行
小夏在深圳 加一個計數的變數,每次找到目標時計數加一,被5整除時換行。源 如下 include int main 擴充套件資料1 printf 函式在碰到 n 時,並沒有直接輸出字元 與字元 n 而是將它們看作一個換行標記,執行了換行操作,以使後面的輸出列印在新的一行。2 printf函式的返回值是...
運用c語言輸出100以內所有的完全數
飛喵某 1 首先開啟vs 2017軟體,開啟一個準備好的工程,新建一個c語言檔案,先寫入標頭檔案和main函式,裡面定義需要的用到的4個變數。2 然後先定義一個for迴圈遍歷100以內的所有數,利用條件語句進行判斷j是不是i的因子,是的話就相加,判斷完成後在判斷因子是不是和原來的數相等即可,盤點完輸...