プログラミング II・1月 26日


先週の Keytouch2000の結果


第 4 回レポートについて


先週の課題について

  1. (問 5.1.12)ファイルから成績データを読み込んで、 平均点を計算するプログラムを作成せよ。
    解答例:
    #include <stdio.h>
    int main() {
      FILE* fp;
      int x, y;
      int total=0, count=0;
      fp = fopen("data.txt", "r");
      while(1) {
        if(fscanf(fp, "%d %d", &x, &y)<2) break;
        count++;
        total+=y; 
      }
      printf("合計得点 %d点  ", total);
      printf("人数 %d人  ", count);
      printf("平均は %f\n", (double)total/count);
      fclose(fp);
    }

字下げ(インデント)を再確認しよう。

字下げをきちんとしておくと、見た目にも美しく、しかも、 中括弧の対応がとれない、というエラーを防ぐことができる。

第 5 章 ポインタと構造体

5.2 構造体 〜 5.2.4 リスト構造(の途中), typedef

今週の課題

  1. 複素数を real, imaginaryの 2つの double型のメンバを持つ構造体 complexとして定義し、共役複素数を求める関数 conjを定義せよ。 (ファイル名 conj.cppまたはconj.c
    テンプレート:
    #include <stdio.h>
    
    /* ここに complex構造体を定義 */
    
    /* ここに関数 conjを定義 */
    
    int main () {
      struct complex c1, c2;
      
      printf("複素数の実部と虚部を入力してください。\n");
      scanf("%lf %lf", &(c1.real), &(c1.imaginary));
      c2 = conj(c1);
      printf("その共役複素数の実部, 虚部は %g, %gです。\n", c2.real, c2.imaginary);
    }
    
    注:
    &(c1.real)は、「.」演算子が &演算子よりも、 優先順位が高いため、単に &c1.realと書いても良い。

PREV, UP, NEXT
Koji Kagawa (kagawa@eng.?????)