本範例示範結構體的使用
如何傳遞結構體給函數,
有如物件般,把資料封裝起來.
執行如圖
由於結構太大,所以無法一一列出,故只能跳著列出,每20層一印,每層又有20筆,總執行次數為 n = 11000次,結構示意如下
<01期>
|--<01層>
| |--<10筆>
| |--<10筆>
|--<02層>
|--<10筆>
|--<10筆>
...
|--<100層>
|--<10筆>
|--<10筆>
...
<10期>
|--<01層>
| |--<10筆>
| |--<10筆>
|--<02層>
|--<10筆>
|--<10筆>
...
|--<100層>
|--<10筆>
|--<10筆>
程式碼如下
#include <conio.h>
#include <stdio.h>
#include <string.h>
char msg[128]="TC struct data test.\nby kowala... \t2011-07-26\n";
struct data{
int position[10];
int mapping[10];
};
struct node{
int period;
struct data numbers[100];
};
struct node srcNode[10]; /* 示範結構體 */
/* 畫線 */
void print_line(){printf("\n---------------------------------\n");}
/* 清結構體 */
void clrNode(struct node *map,int len){
int i,j,k;
for(i=0;i<=len;i++){
map[i].period=0;
for(j=0;j<100;j++){
for(k=0;k<10;k++){
map[i].numbers[j].position[k]=0;
map[i].numbers[j].mapping[k]=0;
}
}
}
}
/*******************************
本範例示範結構體的使用
*******************************/
void main() {
int i,j,k,n,nodeCount=10;
clrscr();
printf("%s\n",msg);
clrNode(&srcNode,nodeCount); /* 清結構體 */
n=0;
for(i=0;i<=nodeCount;i++){
printf("1-%d(%d) ",i,srcNode[i].period);
for(j=0;j<100;j++){
for(k=0;k<10;k++){
n++;
if(j%20==0 && k==0)
printf("2-%d(%d,%d) ",j,srcNode[i].numbers[j].position[k],srcNode[i].numbers[j].mapping[k]);
}
}
printf("\n");
}
printf("After %d calculation...\n",n);
print_line();
}
沒有留言:
張貼留言
請提供您的寶貴意見 ;-)