900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 下三角矩阵的压缩存储

下三角矩阵的压缩存储

时间:2020-08-15 05:26:01

相关推荐

下三角矩阵的压缩存储

输出原来的矩阵;输出压缩后的一维数组;根据输入的行号列号,从压缩矩阵中计算出元素的值

#include<stdio.h>int main(){inta[5][5]={ //定义原二维数组1,0, 0, 0, 0,5,9, 0, 0, 0,4,6, 8, 0, 0,2,3, 44,55,0,7,11,12,13,14};intb[30],x,y,k;printf("原二维数组:\n"); //输出原二维数组for(x=0;x<5;x++){for(y=0;y<5;y++){printf("%d",a[x][y]);}printf("\n");}printf("压缩后的一维数组:\n");intt=0;for(int i=0;i<5;i++) //将二维数组中非0值压缩至一维数组中{for(intj=0;j<5;j++){if(i>=j) //特殊矩阵,只压下三角的值{k=i*(i+1)/2+j; //二维数组和一维数组中原值的对应关系b[k]=a[i][j];t++;}elseb[15]=0;}}for(intl=0;l<t;l++) //输出一维数组{printf("%d",b[l]);}printf("\n");printf("输入要查询的行号 列号:"); //输出要查询的数据printf("\n");scanf("%d%d",&x,&y);printf("您查询的数据是:\n");if(x<y) //如果上三角直接输出0printf("0\n");else //下三角输出一维数组中对应的值printf("%d\n",b[(x-1)*(x)/2+y-1]);return0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。