填空题
【说明】
在一个矩阵中,如果其零元素的个数大大多于其非零元素的个数时,称这样的矩阵为稀疏矩阵。若直接用一个两维数组表示稀疏矩阵,会因存储太多的零元素而浪费大量的内存空间。通常采用三元组数组表示稀疏矩阵。
稀疏矩阵的每个非零元素用一个二元组来表示:即非零元素的行号、列号和它的值。然后按某种顺序将全部非零元素的三元组存于一个数组中。例如对于以下两维数组。
int x[5][4]={{1,0,0,0},
{0,5,0,0},
{0,0,7,2},
{6,0,0,0},
{0,3,0,8}};
可用以下数组a来表示:
int a[][3]={{5,4,7},
{0,0,1},
{1,1,5},
{2,2,7},
{2,3,2},
{3,0,6},
{4,1,3},
{4,3,8}};
其中三元数组a的第1行元素的值分别存储稀疏矩阵x的行数、列数和非零元素个数。
下面的流程图描述了稀疏矩阵转换的过程。
【流程图】
注:流程图,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。
【参考答案】
{m,n,s} (B) A
热门
试题
填空题
【说明】将A,B,C,D,E,F这6个变量排成如图(a)所示的三角形,这6个变量分别取[1,6]中的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解。图(b)就是一个解。程序引入变量a,b,c,d,e,f,并让它们分别顺序取1~6的整数,在它们互不相同的条件下,测试由它们排列成的如图(a)所示的三角形三条边上的变量之和是否相等,如果相等即为一种符合要求的排列,就输出它们。【程序】void main(){ int a, b, c, d, e, f;for(a=1;a<=6;a++)for(b=1;b<=6;b++) {if( (1) ) continue;for(c==1;c<=6;c++) {if( (2) )continue;for(d=1;d<=6;d++) {if( (3) ) continue;for(e=1;e<=6;e++) {if( (4) ) continue;f=21-(a+b+c+d+e);if( (5) ){printf( %6d ,a);printf( %4d%4d ,b,f);printf( %2d%4d%4d ,c,d,e);scanf( %*c ); *按回车键,继续找解* }}}}}}