1.請輸入三個圓的圓心及半徑,使用malloc()函數配置記憶體。
2.題目已提供程式碼片段,執行結果如參考畫面,程式碼有語法、邏輯或其他項目上的錯誤,請全數修正。
本題為標準的鍊結操作,請用心體會。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
struct circle {
int x, y;
int radius;
struct circle *next;
};
struct circle *a, *b, *c, *current;
a = (struct circle *)malloc(sizeof(struct circle));
printf("請輸入第一個圓的圓心(x, y): ");
scanf("%d %d", &a->x, &a->y);
printf("請輸入第一個圓的半徑: ");
scanf("%d", &a->radius);
a->next = NULL;
b = (struct circle *)malloc(sizeof(struct circle));
printf("請輸入第二個圓的圓心(x, y): ");
scanf("%d %d", &b->x, &b->y);
printf("請輸入第二個圓的半徑: ");
scanf("%d", &b->radius);
b->next = NULL;
a->next= b;
c = (struct circle *)malloc(sizeof(struct circle));
printf("請輸入第三個圓的圓心(x, y): ");
scanf("%d %d", &c->x, &c->y);
printf("請輸入第三個圓的半徑: ");
scanf("%d", &c->radius);
c->next=NULL;
b->next=c;
a = current;
int i=1;
while (current != NULL) {
printf("第%d個圓的圓心為(%d, %d), 半徑為%d\n",
i, current->x, current->y, current->radius);
i++;
}
free(a);
free(b);
free(c);
return 0;
}
10 20 11 20 30 12 30 40 13
請輸入第一個圓的圓心(x, y): 10 20 請輸入第一個圓的半徑: 11 請輸入第二個圓的圓心(x, y): 20 30 請輸入第二個圓的半徑: 12 請輸入第三個圓的圓心(x, y): 30 40 請輸入第三個圓的半徑: 13 第1個圓的圓心為(10, 20), 半徑為11 第2個圓的圓心為(20, 30), 半徑為12 第3個圓的圓心為(30, 40), 半徑為13
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |