Ex03Ans

From Prog0

Jump to: navigation, search

演習第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; }
Personal tools