scanf関数のプログラムをgetchar関数で
scanf関数を使って四則演算、論理輪、論理積をint、float、double型で表示するプログラムを作ったのですが
これをscanf関数ではなく、getchar関数で組みなおし、関数化する課題が出ました。
そのままscanf関数のところだけを変えても型が違うというエラーが出てうまくいきません。
どうすればいいでしょうか?
一応scanf関数で組んだプログラムの一部を載せておきます。
#include <stdio.h>
#include <math.h>
main()
{
float a , b;
float x[5];
printf("正の数字を2つ入力して下さい(小数点を含めて4ケタまで):\n");
for(;;)
{
printf("\na=");
scanf("%f" , &a);
if(a>=0 && a<=9999 && a)
{
break;
}
else
{
printf("****aに入力エラー****\n");
printf("数字は4ケタ以内の正数を入力:\n");
continue;
}
}
for(;;)
{
printf("b=");
scanf("%f" , &b);
if(b>=0 && b<=9999 && b)
{
break;
}
else
{
printf("****bに入力エラー****\n");
printf("数字は4ケタ以内の正数を入力:\n");
continue;
}
}
x[0] = a+b;
x[1] = a-b;
x[2] = a*b;
x[3] = a/b;
x[4] = a||b;
x[5] = a&&b;
printf("\n");
printf("int型 結果:\n足し算=%d\n" , (int)x[0]);
printf("引き算=%d\n" , (int)x[1]);
printf("掛け算=%d\n" , (int)x[2]);
printf("割り算=%d\n" , (int)x[3]);
printf("論理和=%d\n" , (int)x[4]);
printf("論理積=%d\n" , (int)x[5]);
printf("\n");
printf("float型 結果:\n足し算=%f\n" , x[0]);
printf("引き算=%f\n" , x[1]);
printf("掛け算=%f\n" , x[2]);
printf("割り算=%f\n" , x[3]);
printf("論理和=%f\n" , x[4]);
printf("論理積=%f\n" , x[5]);
・
・
・
getchar();
}