2008年5月2日 星期五

C 程式設計作業七,指標之使用:解題

這題的重點是要熟悉指標的應用,但也只是簡單的指標。或許以後讀到C語言指標比實際自己用指標的機會還多,加上Java, VB, c#都不用指標,看到的機會也會變少,但是這種存放資料位址的觀念卻是每個程式語言都會用到的。
題目中有一個要注意的地方,就是在x1或y1為零的地方是沒有花的,所以計算起始點時要加入考量。xi,yi是for迴圈的起始點,如果可以整除10,則得到零,所以在 (test)?(true_result):(false_result) 的語法中,在x1不為零且可以整除時(相反則為X1為零或不可整除時),由x1/10起算花的數目。
以下是C語言函數calcRose的解答。
void calcRose(int x1, int y1, int x2, int y2, int *rnum, int *ynum)
{
int i, j, xi, yi;

xi = x1%10||x1==0?x1/10+1:x1/10;
yi = y1%10||y1==0?y1/10+1:y1/10;
for (i=xi;i<=x2/10;i++)
for (j=yi;j<=y2/10;j++)
if (i%2)
if (j%2)
(*ynum)++;
else
(*rnum)++;
else
if (j%2)
(*rnum)++;
else
(*ynum)++;
}

作業七題目
回到作業目錄
回到首頁

沒有留言: