Ex02Ans

From Prog0

Jump to: navigation, search

演習第2回

Contents

解答例

A問題

A-1 変数名の規則

ファイル名: ex02a1.txt

(o)int  aizu;
(x)int  aizu-wakamatsu; /* 変数名が「-」を含んでいる */
(x)int  00uoa; /* 変数名は数字で始めてはいけない */
(x)int  class.1;     /*「.」 は使用できない */
(o)int  Aizu, aizu; /* 大文字と小文字は区別されるので、これらは別々の変数として扱われる */
(o)int  __init__;
(x)int  if = 0; /*  「if」は予約語のため変数名には使用できない */
(o)int  x1, x2=0;
(o)int  speed2fast;
(x)int  prog0@uoa; /* 変数名が「@」を含んでいる */

A-2 printf

ファイル名: ex02a2.c

#include <stdio.h>

int main() 
{
  int num;

  printf("整数値を入力してください:");
  scanf("%d", &num);

  printf("入力された値は %d で、これを4倍した結果は %d です。\n", num, num*4);

  return 0;
}

A-3 変数の値

aの値は最終的に22である。
以下に,変数aの変化を示す。
 int a = 10;         /* a = 10 */
 a = a + 1;          /* a = 10 + 1 = 11 */
 a = a + a;          /* a = 11 + 11 = 22 */

ファイル名: ex02a3.c

#include <stdio.h>

int main()
{
  int a = 10;

  a = a + 1;
  a = a + a; /* aの値は( 22 )になるはず */

  printf("a=%d\n", a);
  return 0;
}

B問題

B-1 平成/西暦変換

ファイル名: ex02b1.c

#include <stdio.h>

int main()  
{
  int heisei;

  printf("年を平成で入力してください [1-31]: ");
  scanf("%d", &heisei);

  printf("平成 %d 年は西暦 %d 年です。\n", heisei, heisei+1988);
  printf("平成 %d 年に生まれた人は今年 %d 才です。\n", heisei, 2026-(heisei+1988));

  return 0;
}

B-2 二つの数の四則演算

ファイル名: ex02b2.c

#include <stdio.h>

int main()
{
  int a, b;

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

  printf("和 = %d\n", a+b);
  printf("差 = %d\n", a-b);
  printf("積 = %d\n", a*b);
  printf("商 = %d 、余り = %d\n", a/b, a%b);

  return 0;
}

B-3 プログラムのデバッグ(上級編)

ファイル名: ex02b3.c

#include <stdio.h>

int main()
{
 int a, b, c, res;

 printf("Input a, b, and c: ");
 scanf("%d%d%d", &a, &b, &c);
 printf("\n");

 res = a*b;
 printf("Compute a * b\n");
 printf("%d * %d = %d\n", a, b, res); /* cを削除、resを追加*/
 
 printf("\n");
  
 printf("Compute (2 * a + b) %% c\n");
 /* printfで%を表示させたい場合は%%と書く */
 res = (2*a+b)%c; /* 計算を行う位置を変更 */
 printf("(2 * %d + %d) %% %d = %d\n", a, b, c, res); /* resを追加 */
  
 return 0;
}

Extra問題

E-1 等差級数の計算

ファイル名: ex02e1.c

#include <stdio.h>

int main()
{
  int a1, d, n, an, sn;
  printf("Enter a1 d n -> ");
  scanf("%d%d%d", &a1, &d, &n);

  an = a1 + (n - 1) * d;
  sn = (a1 + an) * n / 2;

  printf("an = %d\n", an);
  printf("Sn = %d\n", sn);
  return 0;
}
Personal tools