一開始我是不知道水仙花數是3位數以上的,是以就寫了一個求位數的子產品(我也是醉了,如果知道,就不用這麼麻煩)
開始代碼:
#include<stdio.h>
#include<math.h>
int count(int i)
{
int count = 0,remainder = 0;
while(i != 0)
{
remainder = i%10;
i = i/10;
count++;
}
return count;
}
//求位數!
int main()
{
int i = 0,j = 0,sum = 0,remainder = 0;
for(i=10;i<1000;i++)
j = count(i);
while(k != 0)
{
remainder = k%10;
k = k/10;
sum += pow(remainder,j);
}
if(i == sum)
printf("%d\n",i);
return 0;
感悟:當調試代碼時,就出現了死循環,怎麼也打不到錯誤在哪,後來進行斷點調試時才發現for循環裡的“i”和“sum”是一直變化的!
改正後的主函數:int main()
int i = 0,j = 0,k = 0,sum = 0,remainder = 0;
k = i;
sum = 0;
while(k != 0)
此部落格後來補上的,之前不會操作,嘿嘿......
本文轉自 ye小灰灰 51CTO部落格,原文連結:http://blog.51cto.com/10704527/1704942,如需轉載請自行聯系原作者