Ex03Ans
From Prog0
演習第3回
Contents |
解答例
A問題
A-1 変数の値
ファイル名: ex03a1.txt
iの最終的な値は2,jの最終的な値は 4 である。 整数型への型変換は四捨五入で切り上げられることはなくすべて切り捨てられるため。
ファイル名: ex03a1.c
#include <stdio.h> int main() { int i, j; double x, y;
x = 2.3; y = 4.8; i = x; j = y;
printf( "i = %d\n", i); printf( "j = %d\n", j); return 0; }
A-2 printfの書式
ファイル名: ex03a2.c
#include <stdio.h> int main() { int i = 32; double x = 64.5; printf("単位数は%04dです\n", i); printf("単位数は%-4dです\n", i); printf("単位数は%+4dです\n", i); printf("単位数は%4dです\n", i); printf("点数は%.2f点です\n", x); /* %6.2fでも可 */ printf("点数は%.3E点です\n", x); /* %9.3Eでも可 */ printf("点数は%e点です\n", x); /* %.6e, %12.6eでも可 */ return 0; }
A-3 型変換(キャスト)
実行結果
ファイル名: ex03a3.txt
d1: 3.000000 d2: 0.000000 d3: 2.000000 d1_c: 3.500000 d2_c: 0.250000
プログラム例
ファイル名: ex03a3.c
#include <stdio.h> int main() { int x = 14; int y = 4; int z = 56; double d1, d2, d3, d1_c, d2_c;
d1 = x/y; d2 = x/z; d3 = x%y; d1_c = (double)x/(double)y; d2_c = (double)x/z;
printf("d1: %f\n", d1); printf("d2: %f\n", d2); printf("d3: %f\n", d3); printf("d1_c: %f\n", d1_c); printf("d2_c: %f\n", d2_c); return 0; }
B問題
B-1 台形の面積の計算
ファイル名: ex03b1.c
#include <stdio.h> int main() { double jouhen, kahen, takasa, menseki; printf("台形の上辺と下辺の長さと高さをcmで入力してください:"); scanf("%lf%lf%lf", &jouhen,&kahen,&takasa); menseki = (jouhen+kahen)*takasa / 2.0; printf("台形の面積は %f 平方cmです。\n", menseki); return 0; }
B-2 型変換(キャスト)
ファイル名: ex03b2.c
#include <stdio.h> int main() { int a, b; printf("整数a,bの2つの値を入力してください:"); scanf("%d%d", &a, &b); printf("整数: %d / %d の商は %d であり、剰余は %d である。\n",a,b,a/b,a%b); printf("実数: %f / %f = %f である。\n",(double)a,(double)b,(double)a/b); return 0; }
B-3 身長と年齢の平均値
ファイル名: ex03b3.c
#include <stdio.h> int main() { double h1, h2, h3; int a1, a2, a3; double average1, average2; printf("3人の身長[cm]を空白で分けて入力してください:"); scanf("%lf%lf%lf", &h1, &h2, &h3 ); printf("3人の年齢[歳]を空白で分けて入力してください:"); scanf("%d%d%d", &a1, &a2, &a3); average1 = (h1 + h2 + h3)/3; average2 = (double)(a1 + a2 + a3 )/3; printf("3人の身長の平均値: %5.1f [cm]\n", average1); printf("3人の年齢の平均値: %5.1f [歳]\n", average2); printf("1人目の身長:%5.1f [cm], 1人目の年齢: %d [歳]\n", h1, a1); printf("2人目の身長:%5.1f [cm], 2人目の年齢: %d [歳]\n", h2, a2); printf("3人目の身長:%5.1f [cm], 3人目の年齢: %d [歳]\n", h3, a3); return 0; }
Extra問題
E-1 余りの計算
ファイル名: ex03e1.c
#include <stdio.h> int main() { int A, B, amari;
printf( "整数 A, B を入力してください : " ); scanf( "%d%d", &A, &B );
amari = A - A / B * B;
printf( "%d を %d でわった余りは %d です。\n", A, B, amari ); return 0; }