分类: C/C++
2008-04-20 15:04:54
【目的与要求】
1.掌握二维数组的定义、赋值和输入输出的方法;
2.掌握字符数组的使用;
3.掌握与数组有关的算法(例如排序算法)。
【上机内容】
【一般示例】
【例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 for(j=0;j 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 { printf("Input the %d line data:\n",i); for(j=1;j scanf("%d",&a[i][j]); } for(i=1;i {for(j=1;j printf("%5d",a[i][j]); printf("\n"); } for(i=1;i for(j=1;j<=i;j++) sum=sum+a[i][j]; printf("sum=%d\n",sum); } 【作业】 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个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。