2012年8月28日火曜日

開発環境

『実践プログラミング 第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 コメント:

コメントを投稿