C言語の復習

実習課題

作成・提出するC++ソースファイル名などについては,153Rxxxxxx-yy-z.cpp とすること.
(xxxxxxは学生番号,yyは実習の回数,zは課題番号)
ファイル名が正しく設定されていないと採点ができない場合がある.

課題1

整数型配列に初期値として,{10,20,30,40,50}を設定したとき,全ての要素の値を表示するプログラムをポインタを用いて作成せよ.
ファイル名は 153Rxxxxxx-01-1.cpp とすること.(xxxxxxは学生番号)

ヒント:

#include <stdio.h>
	
int main(void)
{
    int a[5] = {10, 20, 30, 40, 50};
    int *p;
    int i;

    p = ???;
	
    for(i=0; i<5; i++) {
        printf(" a[%d] = ???\n", ??? );  // aではなくpを使って表示
    }
    return 0;
}

課題2

50人分の試験の点数(整数)がファイル(50data.txt)に格納されている.
ファイルからデータをすべて読み込み,読み込んだ点数をまず全て画面に表示せよ.
次に,全員の平均点を計算し,小数点2桁まで画面に表示せよ.

ファイル名は 153Rxxxxxx-01-2.cpp とすること.(xxxxxxは学生番号)

実行例(数値は正しいとは限らない)
76
61
.
.
.
86
83
average = 50.34

ファイル内の数値を変えると,計算結果が変わることを確認すること.

課題3

下のmain()関数を用い,キーボードから10個の値を実数型配列に入力,それらの平均値,最大最小値を算出する関数をそれぞれ作成せよ.
配列の中身を画面に表示する計4つの関数を作成し,動作確認せよ.
これらの関数は,配列のサイズが10以外でも正しく動作するように作成すること.例えば,100個,1000個の配列でも動作すること.

ファイル名は 153Rxxxxxx-01-3.cpp とすること.(xxxxxxは学生番号)

????  // 必要なヘッダファイル

???? input(...)
{
    /* ここにキーボードから入力する処理を書く*/
}

???? average(...)
{
    /* ここに平均値を計算する処理を書く*/
}

???? max_min(...)
{
    /* ここに最大値と最小値を求める処理を書く.2つの値を返す必要があるが... */
}


???? output(...)
{
    /*ここに画面出力処理を書く*/
}

int main(void)
{
    /* main関数内は変更しないこと */
    /* プログラム作成中に以下を一時的に変更することは構わない.*/
    /* 最終的に以下の形となっていればよい. */

    const int N = 10;  /* データ個数.この値を 5 や 20 に変更しても正しく動作すること */
    float data[N];     /* 実数型配列 */
    float max, min;    /* 最大値・最小値を格納 */

    input(data, N);    /* 10個の要素をKBDから入力する関数*/

    printf("平均値 = %f\n", average(data,N) );   /* 平均値を算出する関数 */

    max_min(data, N, &max, &min);    /* 最大値と最小値を算出する関数 */

    printf("最大値 = %f,最小値 = %f \n",max,min);

    output(data, N);    /* 配列の中身を画面に出力する関数 */

    return 0;
}