演習課題解答


(1)温度目盛りの一つである華氏(ファーレンハイト度)は,水の融点を32度,水の沸点を212度としている.日本で一般に用いられる温度目盛り摂氏(セルシウス度)で温度をキーボードから入力すると(実数で入力),華氏に換算して画面に表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
	float ct,ft;

	printf("摂氏から華氏に変換します¥n");
	printf("摂氏温度入力:");
	scanf("%f",&ct);

	ft = (212.0-32.0)/100.0 *ct + 32.0;

	printf("華氏温度出力:%.4f¥n",ft);
}

(2)キーボードから二つの整数a,bを入力すると,どちらがどれだけ大きいか,もしくは,等しい,を表示するプログラムを作成せよ.


#include <stdio.h>

void main()
{
	int a,b;

	printf("2つの整数を入力してください¥n");
	printf("a:");
	scanf("%d",&a);
	printf("b:");
	scanf("%d",&b);

	if(a>b){
		printf("aのほうがbより%d大きい¥n",a-b);
	}else if(a == b){
		printf("aとbは等しい¥n");
	}else{
		printf("bのほうがaより%d大きい¥n",b-a);
	}

}

(3)次のアルゴリズムに従うプログラムを作成しなさい.
   ① 10個の整数をキーボードから入力して配列に格納する.
   ② 10個の整数の合計を計算し,平均値を求め表示する.
   ③ 10個の整数の値と,平均値との差を,一行毎に表示する.
     表示例:平均値:62.5
          1番目の数字:93 平均値との差:30.5
          2番目の数字:...


#include <stdio.h>

void main()
{
	int a[10],i,Sum;
	float ave;

	Sum = 0;
	ave = 0;

	for(i=0;i<10;i++){
		a[i] = 0;
	}

	printf("10個の整数を入力してください¥n");

	for(i=0;i<10;i++){
			printf("a[%d]:",i+1);
			scanf("%d",&a[i]);
			Sum += a[i];
	}

	ave = (float)Sum/10;
	printf("平均値:%f¥n",ave);
	
	for(i=0;i<10;i++){
			printf("%d番目の数字:%d 平均値との差:%f¥n",i+1,a[i],(float)a[i]-ave);
	}

}

(4)0から255の間の正の整数値を入力すると,8桁の二進数に変換して表示するプログラムを作成せよ.例えば,十進法の「1」は,「00000001」と表示するものとする.


#include <stdio.h>

void main()
{
	int a,aa[8],i;
	
	a = 0;

	for(i=0;i<8;i++){
		aa[i] = 0;
	}
		i = 0;
	printf("二進数に変換します¥n");
	printf("0~255の正の整数を入力してください¥n");
	printf("十進数表示:");
	scanf("%d",&a);
	if(a<0 || 255<a){
		printf("範囲外です¥n");
	}else{
		while(a > 0){
			aa[i] = a%2;
			a = a/2;
			i++;
		}

			printf("二進数表示:");
				for(i=7;i>=0;i--){
					printf("%d",aa[i]);
				}
			printf("¥n");
			}

}