矩阵加法 C语言问题Description若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 14:47:34

矩阵加法 C语言问题Description若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则
矩阵加法 C语言问题
Description
若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则该二维数组中对应位置的元素为0;否则为1.例如对稀疏矩阵A,可用一维数组V={10,20,30,40}和二维数组{1,0,1,0,0,1,1,0,0}表示该稀疏矩阵.实现使用上述稀疏矩阵存储结构的矩阵加运算X=X+Y.
数据输入:
第一行:矩阵X非零各元素的个数m.
第二行:矩阵X的m个非零元素的值.
第三行:矩阵X的二维0,1数组.
第四行:矩阵Y非零各元素的个数n.
第五行:矩阵Y的n个非零元素的值.
第六行:矩阵Y的二维0,1数组.
数据输出:
第一行:矩阵X与Y相加之后非零各元素的值.
第二行:矩阵XY相加之后的二维0,1数组.

Sample Input
2
1 2
0 1 0 1
2
3 4
1 0 1 0

Sample Output
3 1 4 2
1 1 1 1

Source
+
这是我的代码,问题写在注释中,就是e[m]的值一直为0,找不出问题,希望大家帮帮忙.第二个部分的代码还未做修改,大家可以不看.
#include
#include
int a[10000];//x
int b[10000];//y
char c[10000];//x
char d[10000];//y
int e[1000];//px
int f[1000]={0};//py
int sum[1000]={0};
int main()
{
int xn;
scanf("%d",&xn);

int i=0,j=0,le=0,w=0,k=0,m=0;//j为一维矩阵的长度
for(;i

矩阵加法 C语言问题Description若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则
下面的都是神马回答?人家问你是哪里错了 不是直接管你要能运行的代码
你的验证程序有问题
printf("e[%d] is %d c[]is %c a[%d] is %d m is %d k is %d\n",i,e[i],c[i],i,a[i],m,k);//显示细节
切忌 m!=i 所以你的验证程序会误导你 其实你前面的代码中e[m]是存放着数据的 并非你想的那样全是0