赞
踩
了解数组的两种存储表示方法,掌握数组在以行或列为主的存储结构中的地址计算方法
1. 构建数组a[3][3]、b[3][3],求两个数组元素之和并保存到数组result[3][3]中。
2. 将数组a[3][3]按行序为主序转换到一维数组k[9]中存放。
- #include "stdio.h"
- #define M 3
- void matrixadd(int m1[M][M],int m2[M][M],int result[M][M])
- {
- int i,j;
- for(i=0;i<M;i++)
- {
- for(j=0;j<M;j++)
- result[i][j]=m1[i][j]+m2[i][j];
- }
- }
- void matrixtrams(int m1[M][M],int result[M*M])
- {
- int i,j;
- for(i=0;i<M;i++)
- {
- for(j=0;j<M;j++)
- result[i*M+j]=m1[i][j];
- }
- for(i=0;i<M*M;i++)
- printf("%d ",result[i]);
- printf("\n");
- }
- void display(int result[M][M])
- {
- int i,j;
- printf("输出转换数值:\n");
- for(i=0;i<M;i++)
- {
- for(j=0;j<M;j++)
- printf("%d ",result[i][j]);
- printf("\n");
- }
- }
- main()
- {
- int a[M][M],b[M][M],result[M][M],k[M*M];
- int i,j;
- printf("输入a数值为:\n");
- for(i=0;i<M;i++)
- for(j=0;j<M;j++)
- scanf("%d",&a[i][j]);
- printf("输入b数值为:\n");
- for(i=0;i<M;i++)
- for(j=0;j<M;j++)
- scanf("%d",&b[i][j]);
- matrixadd(a,b,result);
- display(result);
- matrixtrams(a,k);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。