開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の8章(他の制御文)8.1(for文)実習8-2を解いてみる。
8-2.
サイズが5の配列(文字列)のインデックスは0から4なのに、問題のコードは1から5を指定して定義したりfor文でアクセスしたりしているから適切な結果を得られない。
コードを修正。
コード(TextWrangler)
#include <stdio.h>
char line[100]; /* 入力行 */
int seven_count; /* リスト中の7の数 */
int data[5]; /* 3と7を含むデータリスト */
int three_count; /* リスト中の3の数 */
int i; /* リストのインデックス */
int main(){
seven_count = 0;
three_count = 0;
printf("Enter 5 numbers\n");
fgets(line, sizeof(line), stdin);
sscanf(line, "%d %d %d %d %d",
&data[0], &data[1], &data[2],
&data[3], &data[4]);
for(i = 0; i <= 4; ++i){
if(data[i] == 3){
++three_count;
}
if(data[i] == 7){
++seven_count;
}
}
printf("Threes %d Sevens %d\n", three_count, seven_count);
return (0);
}
入出力結果(Terminal)
$ cc -g -o c_program c_program.c $ ./c_program Enter 5 numbers 3 7 3 0 2 Threes 2 Sevens 1 $ ./c_program Enter 5 numbers 7 3 7 0 2 Threes 1 Sevens 2 $ ./c_program Enter 5 numbers 3 3 3 3 3 Threes 5 Sevens 0 $ ./c_program Enter 5 numbers 7 3 3 7 7 Threes 2 Sevens 3 $
0 コメント:
コメントを投稿