2011年4月3日 星期日

EX08指標與二維陣列

修改程式範例: Ch3-2-2.c 為 Ch3-2-2e.c
1.將程式改為完整的九九乘法表
2.增加顯示 i, j, i+1, j+1 及 i*COLS+j 的值如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* 程式範例: Ch3-2-2.c */
#include <stdio.h>
#include <stdlib.h>
#define ROWS      9
#define COLS      9
/* 主程式 */
int main()
{
   /* 宣告變數 */
   int i, j;
   /* 建立int的二維陣列 */
   int tables[ROWS][COLS];
   int *ptr;
   /* 指定二維陣列的元素值 */ 
   for ( i=0; i < ROWS; i++)
      for ( j=0; j < COLS; j++)
         tables[i][j] = (i+1)*(j+1);
   /* 顯示二維陣列的元素值 */ 
   ptr = &tables[0][0];
   
   for ( i=0; i < ROWS; i++) 
   {
      for ( j=0; j < COLS; j++)
       printf("%d*%d=%2d ", (i+1), (j+1),*(ptr+(i*COLS)+j));
       printf("\n");
   } 
   printf("\n");
   
   printf("-----------------------------------------------------\n");  
   printf("i\tj\ti+1\tj+1\ti*COLS+j\n");
   ptr = &tables[0][0];
   for ( i=0; i < ROWS; i++) 
   {
     for ( j=0; j < COLS; j++)
       printf("%d\t%d\t%d\t%d\t%d\n",i,j,(i+1),(j+1),((i*COLS)+j));
       printf("\n");
   }
   system("PAUSE");
   return 0; 
}



1 則留言: