本程序已在Visual Studio 2008調試通過
成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元明水做網(wǎng)站,已為上家服務,為明水各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
#include "stdio.h"
int fun(int a[])//子函數(shù)中查找100~999之間的水仙花數(shù)
{int m,x,y,z,i=0;
for(m=100;m999;m++)
{x=m%10;//分解出個位數(shù)
y=(m-x)/10%10;//分解出十位數(shù)
z=m/100;//分解出百位數(shù)
if(x*x*x+y*y*y+z*z*z==m)//判斷每位數(shù)的立方的和是否與原數(shù)相等
{a[i]=m;i++;}}//若相等則存入數(shù)組
return(i);//返回數(shù)組中水仙花數(shù)的個數(shù)以方便在主函數(shù)中輸出
}
void main()
{int fun(int a[]);//子函數(shù)先定義后使用
int a[20],i,k;
k=fun(a);//調用子函數(shù),注意本題中傳遞的是整個數(shù)組,所以子函數(shù)和主函數(shù)共用一個數(shù)組,系統(tǒng)分配的是同一片區(qū)域,雙向傳遞
for(i=0;ik;i++)//循環(huán)輸出
printf("%d=%d^3+%d^3+%d^3\n",a[i],a[i]/100,a[i]/10%10,a[i]%10);
}//輸出結果為 153=1^3+5^3+3^3 370=3^3+7^3+0^3 371=3^3+7^3+1^3 407=4^3+0^3+7^3
你看一下如果還有什么問題再問我
源程序如下:
#includestdio.h
int fun(int n)
{ int i,j,k,m;
m=n;
k=0;
for(i=1;i4;i++)
{ j=m%10;
m=(m-j)/10;
k=k+j*j*j;
}
if(k==n)
return 1;
else
return(0);
}
void main()
{ int i;
for(i=100;i1000;i++)
if(fun(i)==1)
printf("%d is ok!\n" ,i);
}
水仙花數(shù)是指一個 n 位數(shù) ( n≥3 ),它的每個位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
所謂的“水仙花數(shù)”是指一個三位數(shù)其各位數(shù)字的立方和等于該數(shù)本身,例如153是“水仙花數(shù)”,因為:153 = 1^3 + 5^3+ 3^3?。
下面是完整的C語言編程代碼:
運行結果:
result is:153? 370? 371? 407
擴展資料
常見水仙花數(shù)
水仙花數(shù)又稱阿姆斯特朗數(shù)。
1、三位的水仙花數(shù)共有4個:153,370,371,407;
2、四位的四葉玫瑰數(shù)共有3個:1634,8208,9474;
3、五位的五角星數(shù)共有3個:54748,92727,93084;
4、六位的六合數(shù)只有1個:548834;
5、七位的北斗七星數(shù)共有4個:1741725,4210818,9800817,9926315;
6、八位的八仙數(shù)共有3個:24678050,24678051,88593477
參考資料:百度百科:水仙花數(shù)
水仙花數(shù)是指一個 n 位數(shù) ( n≥3 ),每個位上的數(shù)字的 n 次冪之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。
所以可以依次通過模除求得每個位上的值,然后做n次冪后相加,再判斷是否與本身相等,從而得到是否為水仙花數(shù)的結論。
以求所有三位數(shù)水仙花數(shù)為例,代碼如下,其它相似。
#includestdio.h
#includestdlib.h
#includestdbool.h
int?cube(const?int?n){//計算立方。如果是四位則是四次方,以此類推。
return?n*n*n;
}
int?isNarcissistic(const?int?n){//計算是否為水仙花數(shù)。
int?hundreds=n/100;//百位
int?tens=n/10-hundreds*10;//十位
int?ones=n%10;//個位
return?cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,則為水仙花數(shù)。
}
int?main(void){
int?i;
for(i=100;i1000;++i){//對所有三位數(shù)判斷。
if(isNarcissistic(i))//如果是則輸出。
printf("%d\n",i);
}
return?0;
}
for(int n=100;n1000;n++){ 后面加上一句 result=0.0;
if(result==n) printf("%d是水仙花數(shù)\n",n); 這句應該在第二個for循環(huán)外
你沒有循環(huán)啊.
if?(t=n)
{
for(;?t=n;?t++)
{
p=judge(t);
if(p==1)
{
printf("%d",?t);
printf("?");
flag=flag+1;
}
}
}
else
{
if(flag==0)?printf("no\n");
else?printf("\n");
}
網(wǎng)站欄目:水仙花c語言函數(shù)題,c語言水仙花數(shù)函數(shù)
新聞來源:http://muchs.cn/article28/hcjpjp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、品牌網(wǎng)站制作、全網(wǎng)營銷推廣、網(wǎng)站設計、響應式網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)