============================================================== 【程序3】 題目:一個整數,它加上100后是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少? 1.程序分析:在10萬以內判定,先將該數加上100后再開方,再將該數加上268后再開方,假如開方后 的結果滿足如下條件,即是結果。請看具體分析: 2.程序源代碼: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); /*x為加上100后開方后的結果*/ y=sqrt(i+268); /*y為再加上168后開方后的結果*/ if(x*x==i+100&&y*y==i+268)/*假如一個數的平方根的平方等于該數,這說明此數是完全平方數*/ printf(" %ld ",i); } } ============================================================== 【程序4】 題目:輸入某年某月某日,判定這一天是這一年的第幾天? 1.程序分析:以3月5日為例,應該先把前兩個月的加起來,然后再加上5天即本年的第幾天,非凡 情況,閏年且輸入月份大于3時需考慮多加一天。 2.程序源代碼: main() { int day,month,year,sum,leap; printf(" please input year,month,day "); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先計算某月以前月份的總天數*/ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; } sum=sum+day; /*再加上某天的天數*/ if(year%400==0(year%4==0&&year%100!=0))/*判定是不是閏年*/ leap=1; else leap=0; if(leap==1&&month>2)/*假如是閏年且月份大于2,總天數應該加一天*/ sum++; printf("It is the %dth day.",sum);} ==============================================================