2012年9月23日日曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の9章(変数スコープおよび関数)9.7(プログラミング実習)実習9-3を解いてみる。

実習9-3.

コード(TextWrangler)

#include <stdio.h>

int count(int number, int array[], int length){
  int total = 0;
  if(length == 0){
    return total;
  }
  if(array[length - 1] == number){
    total++;
  }
  length--;
  return total + count(number, array, length);
}
int main(){
  int number;
  int length;
  char line[100];
  int i;
  while(1){
    printf("配列の要素数を入力: ");
    fgets(line,sizeof(line),stdin);
    sscanf(line,"%d",&length);
    int array[length];
    printf("数値配列の要素を1行に1要素ずつ入力\n");
    for(i = 0; i < length ; i++){
      fgets(line,sizeof(line),stdin);
      sscanf(line,"%d", &array[i]);
    }
    printf("いくつあるか数える数値を入力: ");
    fgets(line,sizeof(line),stdin);
    sscanf(line,"%d",&number);
    printf("配列にある数値%dの個数: %d個\n", 
      number, count(number,array,length));
  }
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
配列の要素数を入力: 10
数値配列の要素を1行に1要素ずつ入力
1
2
3
4
5
6
7
8
9
1
いくつあるか数える数値を入力: 1
配列にある数値1の個数: 2個
配列の要素数を入力: 10
数値配列の要素を1行に1要素ずつ入力
1
2
1
3
4
5
6
1
7
8
いくつあるか数える数値を入力: 1
配列にある数値1の個数: 3個
配列の要素数を入力: 10
数値配列の要素を1行に1要素ずつ入力
1
1
1
1
1
1
1
1
1
1
いくつあるか数える数値を入力: 1
配列にある数値1の個数: 10個
配列の要素数を入力: 5       
数値配列の要素を1行に1要素ずつ入力
10
10
2
3
10
いくつあるか数える数値を入力: 10
配列にある数値10の個数: 3個
配列の要素数を入力: ^C
$

0 コメント:

コメントを投稿