實驗七 二維數(shù)組
【目的與要求】
1.掌握二維數(shù)組的定義、賦值和輸入輸出的方法;
2.掌握字符數(shù)組的使用;
3.掌握與數(shù)組有關(guān)的算法(例如排序算法)。
【上機內(nèi)容】
【一般示例】
【例1】有一個3×4的矩陣,要求輸出其中值最大的元素的值,以及它的行號和列號。
#define M 3
#define N 4
main( )
{int max,i,j,r,c;
static int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i<M;i++)
for(j=0;j<N;i++)
if ( a[i][j]>max)
{max= a[i][j];
r=i;
c=j;
}
printf(“max=%d , row =%d , colum=%d n”,max , r, c);
}
【例2】打印以下圖案:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
main()
{char a[5]={‘ * ‘ , ‘ * ‘ , ‘ * ‘ , ‘ * ‘ , ‘ * ‘};
int i,j,k;
char space=’ ‘;
for(i=0;i<5;i++) /*輸出5行*/
{printf(“n”); /* 輸出每行前先換行* /
printf(” “); /* 每行前面留5個空格 */
for (j=1;j<=i;j++)
printf(“%c”,space); /* 每行再留1個空格*/
for ( k=0;k<5;k++)
printf(“%c”,a[k]); /*每行輸入5個*號*/
}
}
【例3】求矩陣下三角形元素之和。
#define N 6
main()
{int i,j,sum=0;
int a[N][N]={0};
printf(“input 5×5 data:n”);
for(i=1;i<N;i++)
{ printf(“Input the %d line data:n”,i);
for(j=1;j<N;j++)
scanf(“%d”,&a[i][j]);
}
for(i=1;i<N;i++)
{for(j=1;j<N;j++)
printf(“%5d”,a[i][j]);
printf(“n”);
}
for(i=1;i<N;i++)
for(j=1;j<=i;j++)
sum=sum+a[i][j];
printf(“sum=%dn”,sum);
}
【作業(yè)】
1. 求一個3×3矩陣對角線元素之和。
2. 打印出以下的楊輝三角形(要求打印出10行)。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
…… …… ……
3. 有一篇文章,共有3行文字,每行有80個字符。要求分別統(tǒng)計出其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。