我是一個相對的初學者與C我寫了我認爲是一個相當簡單的 C程序迭代變量'賽季'內兩-loops。代碼編譯 並運行,但'季節'未被正確跟蹤。我希望有人可能會 願意提供有關如何更正代碼的建議。C:迭代for循環,一個ceil語句和odd vs even語句
下面我提供了我想要的結果,當前C代碼以及代碼爲 的結果。
我想下面的結果:
cohort = 1, class = 1, season = 1
cohort = 1, class = 2, season = 1
cohort = 1, class = 3, season = 2
cohort = 1, class = 4, season = 2
cohort = 1, class = 5, season = 3
cohort = 1, class = 6, season = 3
cohort = 2, class = 1, season = 1
cohort = 2, class = 2, season = 2
cohort = 2, class = 3, season = 2
cohort = 2, class = 4, season = 3
cohort = 2, class = 5, season = 3
cohort = 3, class = 1, season = 2
cohort = 3, class = 2, season = 2
cohort = 3, class = 3, season = 3
cohort = 3, class = 4, season = 3
cohort = 4, class = 1, season = 2
cohort = 4, class = 2, season = 3
cohort = 4, class = 3, season = 3
cohort = 5, class = 1, season = 3
cohort = 5, class = 2, season = 3
cohort = 6, class = 1, season = 3
我的C代碼如下正下方之後,我提出了 結果被返回代碼:
#include <stdio.h>
#include <math.h>
char quit;
main()
{
int mcoht, mclass, season, nmcohts ;
double season2, cohort2, class2 ;
nmcohts = 6 ;
// cohort loop
for (mcoht=1; mcoht <= nmcohts; mcoht++) {
season = ceil(mcoht/2) ;
// class loop
for (mclass=1; mclass <= (nmcohts-(mcoht-1)); mclass++) {
season2 = season ;
cohort2 = mcoht ;
class2 = mclass ;
printf("cohort is: %10.10lf\n", cohort2);
printf("class is: %10.10lf\n", class2);
printf("season is: %10.10lf\n", season2);
// update season (mclass&1) = 0 if mclass even, 1 if mclass is odd
if(((mcoht&1) + (mclass&1)) == 1) season = season + 1;
} // close class loop
} // close cohort loop
printf("To close type 'quit' and hit the return key\n");
printf(" \n");
scanf("%d", &quit);
return 0;
}
以下是通過返回的結果代碼。除非我犯了一個錯誤 在下面輸入下面的句子,看起來'季節'對於偶數隊列 是正確的,但是對於奇數號 隊列,它看起來像是需要的。
感謝您提出任何有關如何更正代碼或如何改進此帖子的建議 。
cohort = 1, class = 1, season = 0
cohort = 1, class = 2, season = 0
cohort = 1, class = 3, season = 1
cohort = 1, class = 4, season = 1
cohort = 1, class = 5, season = 2
cohort = 1, class = 6, season = 2
cohort = 2, class = 1, season = 1
cohort = 2, class = 2, season = 2
cohort = 2, class = 3, season = 2
cohort = 2, class = 4, season = 3
cohort = 2, class = 5, season = 3
cohort = 3, class = 1, season = 1
cohort = 3, class = 2, season = 1
cohort = 3, class = 3, season = 2
cohort = 3, class = 4, season = 2
cohort = 4, class = 1, season = 2
cohort = 4, class = 2, season = 3
cohort = 4, class = 3, season = 3
cohort = 5, class = 1, season = 2
cohort = 5, class = 2, season = 2
cohort = 6, class = 1, season = 3
我將結果中的代碼示例引號僅作爲列顯示。我不需要如圖所示格式化輸出。我只需要'季節'來正確計算。
我是一個自學成才的newby。請隨時提出改進建議。 – 2012-03-12 06:42:32
謝謝大家。這非常有幫助和教育。我也會研究可能獲得的'The C Programming Language'。 – 2012-03-12 07:50:17