矩陣加法 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

解答:

下面的都是神馬回答?人家問你是哪裡錯了 不是直接管你要能運行的代碼
你的驗證程序有問題
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

添加新評論

暱稱
郵箱
網站