第8回演習の解答例


(1)要素数 12 個の整数型配列 {9, 8, 7, -6, -7, 5, 3, 10, 0, 7, -3, 1}の中から数字の 5 を探し,
   5が存在「する」または「しない」を表示するプログラムを作成せよ


#include <stdio.h>

void main()
{
    int a[12] = {9, 8, 7, -6, -7, 5, 3, 10, 0, 7, -3, 1};
    int i, count;
    
    count = 0;

    for(i=0; i<12; i++){
        if(a[i]==5){
			count++;
		}
    }

    if(count!=0){
		printf("この配列には5が存在する¥n");
	} else {
		printf("この配列には5が存在しない¥n");
	}
}

(2)(1)の配列で,最大値を探し,最大値を表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
    int a[12] = {9, 8, 7, -6, -7, 5, 3, 10, 0, 7, -3, 1};
    int i, max;

    max = 0;

    for(i=0; i<12; i++){
        if(max<a[i]){
			max = a[i];
		}
    }

    printf("この配列の最大値は%dです¥n",max);
}

(3)(1)の配列で,7 がいくつあるかを数え,配列の何番目の要素かを表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
    int a[12] = {9, 8, 7, -6, -7, 5, 3, 9, 0, 7, -3, 1};
    int i, count;
    
    count = 0;

    for(i=0; i<10; i++){
        if(a[i]==7){
			printf("配列の%d番目の要素に7があります¥n",i+1);
			count++;
		}
    }

    printf("この配列には7が%d個あります¥n",count);
}


(4)実数型配列に,数値 10.2, 9.8, 3.3, 8.4, 11.9  をキーボード入力し,
   全ての要素の合計と平均を表示するプログラムを作成せよ


#include <stdio.h>

void main()
{
    float a[5];
    float sum;
    int i;

    sum = 0;

    for(i=0; i<5; i++){
		printf("a[%d]=",i);
		scanf("%f",&a[i]);
        sum += a[i];
    }

    printf("合計 = %f ¥n", sum);
    printf("平均 = %f ¥n", sum/5);
}


(5)整数型配列に成績データである得点を入力し,偏差値を計算し,それぞれの番号の得点と偏差値を全て表示するプログラムを作成せよ.
   成績データは以下に示すものを使用せよ.


#include <stdio.h>
#include <math.h>

void main()
{
    int data[20];
    float ave, variance, deviation, T_score;
    int i;

    for(i=0; i<20; i++){
		printf("番号%dの得点=",i+1);
		scanf("%d",&data[i]);
		ave += (float)data[i] / 20.0;
    }

    for(i=0; i<20; i++){
		variance += ((float)data[i]-ave) * ((float)data[i]-ave) / 20.0;
	}
	
	deviation = sqrt(variance);

    printf("番号¥t得点¥t偏差値¥n");

    for(i=0; i<20; i++){
		T_score = 10*((float)data[i]-ave)/deviation + 50;
		printf("%d¥t%d¥t%2.2f¥n",i+1,data[i],T_score);
    }
}