演習 2: 繰り返しと1次元配列、簡単な関数 (2003年9月25日)

例題 1 : 1から整数 n の和と積を求めるプログラム

#include <stdio.h>

int main(void)
{
  int i, n;
  int sum, prod;

  printf("input n");
  scanf("%d", &n);

  sum = 0;
  prod = 1;
  for (i = 1; i <= n; i++) {
    sum += i;
    prod *= i;
  }

  printf("sum from 1 to n = %d\n", sum);
  printf("product from 1 to n = %d\n", prod);

  return 0;
}

例題 2 : 配列に入力し、和をもとめるプログラム

#include <stdio.h>

int main(void)
{
  int i,k;
  int sum;
  int A[10];

  printf("input 10 numbers ");
  for(i = 0; i < 10; i++){
     scanf("%d", &k);
     A[i] = k;
  }
     
  sum = 0;
  for (i = 0; i < 10; i++){
    sum += A[i];
  }

  printf("sum = %d\n", sum);

  return 0;
}

例題 3:2数のうち大きい方を求める関数

#include <stdio.h>

int calc_max(int x, int y);  /* 最大値を求める関数の宣言 */

int main(void)
{
  int a, b; /* 入力する2整数 */
  int max;  /* 最大値 */

  printf("input a ");
  scanf("%d", &a);

  printf("input b ");
  scanf("%d", &b);

  max = calc_max(a, b);

  printf("max = %d\n",max);

  return 0;
}

int calc_max(int a, int b)
{
  if (a > b)
    return a;
  else
    return b;
}

課題 1

例題 1のプログラムを変更して,50から100の偶数の和を出力するプログラム を作成しなさい。

課題 2

例題2のプログラムを参考にして、10個ずつ20個の整数を10のサイズを持つ配 列A,Bに入力し、両方の配列に入っている要素を出力するプログラムを作成し なさい。このプログラムは配列に入っている要素を集合として、2つの集合の 積(intersection)を計算することになる。

課題 3

2次元座標上の2点(x1,y1)(x2,y2)を表す数x1,y1,x2,y2を引数として、 この2点を対角線とし、上下の辺がx軸、左右の辺がy軸に並行な四角形の面積 を求める関数areaを作成しなさい。これを用いて、x1,y1,x2,y2を入力して、 面積を出力するプログラムを作成しなさい。なお、x1,y1,x2,y2は整数でよい。