網站聲明

本網站包含了各式各樣的資源,如果有侵占到您的著作權,請與本人通知,本人會立即改進。本站所有發表僅屬研究討論性質,如果有任何後果請自行負責。

2014-05-31

TQC+ C 結構 510

510.
設計說明:

1. 請輸入三個圓的心及半徑,使用malloc()函數配置記憶體。
2. 修改程式碼片段中的程式語法、邏輯上的錯誤,執行結果如範例圖。


參考程式碼:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main ()
  4. {
  5.  struct circle {
  6.   int x, y;
  7.   int radius;
  8.   struct circle *next;
  9.  };
  10.  struct circle *a, *b, *c, *current;  
  11.  a = (struct circle *)malloc(sizeof(struct circle));
  12.  printf("請輸入第一個圓的圓心(x, y): ");
  13.  scanf("%d %d", &a->x, &a->y);
  14.  printf("請輸入第一個圓的半徑: ");
  15.  scanf("%d", &a->radius);
  16.  a->next = NULL;
  17.  b = (struct circle *)malloc(sizeof(struct circle));
  18.  printf("請輸入第二個圓的圓心(x, y): ");
  19.  scanf("%d %d", &b->x, &b->y);
  20.  printf("請輸入第二個圓的半徑: ");
  21.   scanf("%d", &b->radius);
  22.  b->next = NULL;
  23.  a->next= b;
  24.  c = (struct circle *)malloc(sizeof(struct circle));
  25.  printf("請輸入第三個圓的圓心(x, y): ");
  26.  scanf("%d %d", &c->x, &c->y);
  27.  printf("請輸入第三個圓的半徑: ");
  28.  scanf("%d", &c->radius);
  29.  c->next=NULL;
  30.  b->next=c;
  31.  current = a ;//把 current 設定初始值 a
  32.  int i=1;
  33.  while (current != NULL) {
  34.   printf("第%d個圓的圓心為(%d, %d), 半徑為%d\n",i, current->x, current->y, current->radius);
  35.   i++;
  36.   current=current->next;//做完一輪後,要把記憶體位置導向下一個
  37.  }
  38.  free(a);//釋放記憶體
  39.  free(b);
  40.  free(c);
  41.  system("PAUSE");
  42.  return 0;
  43. }

TQC+ C 試題總整理

聲明:

這裡的範例程式碼皆由本人親自編輯,歡迎轉載本教學,但請註明本網站,尊重一下作者的心血

沒有留言:

張貼留言

歡迎留言,較舊文章需要留言審核看不到自己的留言是正常的。
若長時間無回應請使用以下聯絡方式:
填寫表單:https://forms.gle/hxxX9n4tATcFnhnk8
寄信到:happyplayblogs@gmail.com