開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) I部(基礎編)の5章(配列、修飾子および数値の使用)5.4(多次元配列)設問5-1を解いてみる。
設問5-1.
printfの引数で多次元配列を変数名[,]と誤って使っているから。
修正
コード(TextWrangler)
#include <stdio.h>
int array[3][2];
int main(){
int x,y;
array[0][0] = 0 * 10 + 0;
array[0][1] = 0 * 10 + 1;
array[1][0] = 1 * 10 + 0;
array[1][1] = 1 * 10 + 1;
array[2][0] = 2 * 10 + 0;
array[2][1] = 2 * 10 + 1;
printf("array[%d] ", 0);
printf("%d ", array[0][0]);
printf("%d ", array[0][1]);
printf("\n");
printf("array[%d] ", 1);
printf("%d ", array[1][0]);
printf("%d ", array[1][1]);
printf("\n");
printf("array[%d] ", 2);
printf("%d ", array[2][0]);
printf("%d ", array[2][1]);
printf("\n");
return (0);
}
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample array[0] 0 1 array[1] 10 11 array[2] 20 21 $
ちなみに、コードを記述するのに使ったPythonのコード
tmp.py
#!/usr/bin/env python
for i in range(3):
for j in range(2):
print("array[" + str(i) + "][" + str(j)
+ "] = " + str(i) + " * 10 + " + str(j) + ";")
for i in range(3):
print("printf(\"array[%d] \", " + str(i) + ");")
for j in range(2):
print("printf(\"%d \", array[" + str(i) + "]["+str(j)+"]);")
print("printf(\"\\n\");")
0 コメント:
コメントを投稿