引用 | 編輯
csr
2011-03-04 22:29 |
樓主
▼ |
||
x0
#include<stdio.h>#include<stdlib.h> int main(void) { int i,rem400,rem100,rem4,sum=0; for(i=0;i<=2006;i++) { rem400=i%400; rem100=i%100; rem4=i%4; if(((rem4==0)&&(rem100!=0))||(rem400==0)) .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
totsi
2011-03-07 10:00 |
1樓
▲ ▼ |
請問一下~
這邊所說的閏年總和指的是所有潤年的年份總和嗎? 還是只要算出有幾個閏年就好? 因為我看您提供的程式碼裡面,只有判定是否為閏年,並沒有做任何計數的動作。^^m 如果要貼程式碼的話,建議放在"複製程式 x0 |
引用 | 編輯
csr
2011-03-08 08:51 |
2樓
▲ ▼ |
大大您好
小弟現已有那一年是閏年了 現在就是要把這些閏年數目加起來看總數有多少個閏年 小弟有設一個變數sum=0 因為寫不出來所以就沒有計數動作 若大大可以幫忙 是否可幫小弟加總一下有多少個閏年(就是所有閏年個數總和) 謝謝 x0 |
引用 | 編輯
totsi
2011-03-08 14:28 |
3樓
▲ ▼ |
目前只能用腦袋想,所以測試就要麻煩您玩玩看嚕XDD
如果只是要算個數,是沒那麼複雜。 底下省略頭尾的部份 複製程式 .... if(((rem4==0)&&(rem100!=0))||(rem400==0)) { ++sum; printf("閏年=%d\t",i); } .... 記得在進入迴圈前要歸零就是了。 x0 |
引用 | 編輯
csr
2011-03-08 21:51 |
4樓
▲ ▼ |
大大您好
跟據你的寫法就和小弟重覆 if(((rem4==0)&&(rem100!=0))||(rem400==0)) printf("閏年=%d\t",i); if(((rem4==0)&&(rem100!=0))||(rem400==0)) { ++sum; printf("閏年=%d\t",i); } 只是大大的程式碼多了一個沒有用到的++sum 在程式內多沒去使用到 所以不管怎麼用 結果還是跟小弟的一樣 不知小弟這樣說明 大大您可清楚 因為小弟要的是所有閏年個數及所有閏年個數的總和 比如說總數486個閏年 像這樣的結果 謝謝 ++sum; printf("閏年=%d\t",i); 小弟把 i 改成sum後結果如下 不知怎樣把它弄整齊 x0 |
引用 | 編輯
totsi
2011-03-09 15:00 |
6樓
▲ ▼ |
||||||||||
Reference:
XL:判斷年份是否為閏年的方法 Character Set要設定為Use Multi-Byte Character Set。 複製程式 #include "stdafx.h" #include <windows.h> int _tmain(int argc, _TCHAR* argv[]) { int nCountYear = 0; //目前年份 int nTotalLeapYearNum = 0; //總閏年個數 int nTotalLeapYearSum = 0; //所有閏年年份總和 int nStartYear = 0; //開始判定年份 int nEndYear = 2006; //最後判定年份 printf("====== Start to show the Leap year between %d and %d =====\n", nStartYear, nEndYear); //NOTE:每年都判定 for ( int nCountYear = nStartYear ; nCountYear <= nEndYear ; nCountYear++ ) { if ( ((nCountYear%4 == 0) && (nCountYear%100 != 0)) || //4的倍數,且不為100的倍數。 For 0~399 ((nCountYear%100 == 0) && (nCountYear%400 == 0) ) //100的倍數,且為400的倍數。 For 400~??? ) { ++nTotalLeapYearNum; //計算年份個數 nTotalLeapYearSum += nCountYear; //計算年份總合 if ( nTotalLeapYearNum%10 != 0 ) { printf("%04d ", nCountYear); }else{ printf("%04d\n", nCountYear); } } } //End of for ( int nCountYear = nStartYear ; nCountYear <= nEndYear ; nCountYear++ ) printf("\n====== End to show the Leap year between %d and %d =====\n", nStartYear, nEndYear); printf("\n====== Statistics Data ======\n"); printf("There are %d leap years.\n", nTotalLeapYearNum); printf("The sum of leap years is %d.\n", nTotalLeapYearSum); ::system("pause"); return 0; }
x2 |