C語言上機報告之水仙花數.
C語言程序設計
上機報告
課題名稱:水仙花數的算法
院 (系):工程學院
專業班 級: 052126
學生姓名: 喻培
學 號: 20121004040
指導教師: 熊慕舟
2013年11月24日
C語言上機報告之水仙花數
上機目的:1.了解c語言和程序設計
2.學習怎樣實現算法,怎樣實現水仙花數的輸出
上機作業:判斷是否是水仙花數。
—水仙花數是指一個n位數(n>=3),它的每個位上數字n次冪之和等于它本身。
要求:
—用scanf輸入的數字為任意位數字
—要求進行錯誤檢查
—判斷該數是否為水仙花數
—對判斷結果進行輸出
程序設計
1、NS流程圖:
輸入n0→sum,1→i,0→c,n→h,h→jn/10不小于1
是 否n/10→n,i+1→i跳出循環 直到n/10不小于1c
是 否h%10→b,h/10→h,sum+b的i次冪→sum,c+1→c 跳出循環直到c>=isum=j
是 否輸出n“是水仙花數”輸出n“不是水仙花數”
2、算法:
首先將0賦值給sum,1賦值給i,0賦值給c,n賦值給h,h賦值給j,再輸入任意一位數n,對它取10的商,用該商與1比較。若不小于1,則將該商賦值給n,i+1賦值給i,再進行判斷,重復以上步驟,直到n/10不小于1,跳出循環體,記住此時i的值,執行下一步。判斷c是否小于i。若是,則將h取10的余數賦值給b,h除以10的商賦值給h,sum+b的i次冪賦值給sum,c+1賦值給c,再進行判斷,重復以上步驟,直到c不小于i,跳出循環體,執行下一步。最后判斷sum=i,若是,則輸出n“是水仙花數”;若不是,則輸出n“不是水仙花數”。
3、程序代碼:
# include //預處理指令
# include //定義一個函數
int main() //函數首部
{
int n,b,h,j; //定義變量
sum=0; //對變量sum賦值
c=0; //對變量c賦值
i=1; //對變量i賦值
printf("please enter a number,n=?"); //輸出語句
scanf("%d",&n); //輸入任意數n
h=n; //對變量h賦值
while(n/10>=1) //循環結構的開始
{
n=n/10; //對變量n賦值
i=i+1; //對變量i賦值
} //第一層循環結
束
j=h; //對變量j賦值
while(c
開始
{
b=h%10; //對變量b賦值
h=h/10; //對變量h賦值