(1)0℃の時0.0 V,100℃の時5.0 Vを出力する温度センサーがある.0℃~100℃の間では電圧と温度の関係が直線的に変化するものとする. 測定された電圧値(例えば,2.3等)をキーボードから入力すると,温度を計算して画面に表示するプログラムを作成せよ.
/*1.電圧と温度の関係*/
#include <stdio.h>
void main()
{
float V; /*変数の定義*/
printf("電圧値:V="); scanf("%f",&V); /*変数への入力*/
if(V>=0.0&&V<=5.0){ /*条件の判定*/
printf("温度は%.2f℃です.",100.0/5.0*V);
}else{
printf("電圧は0.0~5.0Vで入力してください.");
}
}
(2)次に,電圧と温度の関係が下表のようなセンサーを用いる.隣接する各温度差10℃の間では,電圧と温度の関係が直線的に変化するものとする. 測定された電圧値(例えば,2.3等)をキーボードから入力すると,温度を計算して画面に表示するプログラムを作成せよ.
/*2.温度変換プログラム*/
#include <stdio.h>
void main()
{
float V;
int i; /*カウンター変数の定義*/
float thre[12]={0.0, 0.389, 0.787, 1.194, 1.61, 2.035, 2.467, 2.908, 3.357, 3.813, 4.277, 5.0};/*電圧測定点の入力*/
printf("電圧値:V="); scanf("%f",&V);
if(V>=0.0 && V<=4.277){ /*動作範囲の確認*/
for(i=0; i<11; i++){
if(V>=thre[i] && V<thre[i+1]){ /*温度の計算*/
printf("温度は%.2f℃です.",10*i+10/(thre[i+1]-thre[i])*(V-thre[i]));
}
}
}else{
printf("動作範囲を超えています."); /*動作範囲の確認*/
}
}
(3)2つの整数a, bをキーボードから入力すると,その数を含め2つの数の間の整数の積を求めるプログラムを作成せよ.ただし,a, b どちらが大きいかは,わからない. 例:a = 5, b = 2とすると,120と表示する.(2×3×4×5 = 120)
/*3.2つの整数の積*/
#include <stdio.h>
void main()
{
int a,b,i,s; /*変数の定義*/
s=1; /*計算変数の初期化*/
printf("a="); scanf("%d",&a); /*変数の入力*/
printf("b="); scanf("%d",&b);
if(a-b==0){ /*大小の判定*/
printf("答えは0です.¥n"); /*答えの出力*/
}else if(a-b>0){ /*大小の判定*/
for(i=b;i<=a;i++){
s *= i; /*積の計算*/
}
printf("答えは%dです.¥n",s); /*答えの出力*/
}else{ /*大小の判定*/
for(i=a;i<=b;i++){
s *= i;
}
printf("答えは%dです.¥n",s); /*答えの出力*/
}
}
(4)キーボードから入力された20個の実数を配列に格納し,その平均値以下の数値を画面に出力するプログラムを作成せよ.
/*4.平均値以下を出力*/
#include <stdio.h>
void main()
{
int i;
float n[20];
float ave, sum;
for(i=0;i<20;i++){
printf("実数を20個入力して下さい:"); /*変数への入力*/
scanf("%f",&n[i]);
}
sum = 0.0; /*変数の初期化*/
for(i=0;i<20;i++){
sum += n[i]; /*合計値の計算*/
}
ave = sum / 20.0; /*平均値の計算*/
while(n[i]<=ave){
printf("%f¥n",n[i]); /*平均値以下の出力*/
}
}