tulchirx
asked on
matrix multiplication
I don't know why my program doesn't work or how to fix it so it would work.
my program must calculate the number of connections of a given length which connect two nodes of a diagraph. My program read the original adjacency matrix from a file, which is this:
4
0 1 1 0
1 1 1 0
1 0 0 1
0 0 0 0
The program prompts the user for the desired connection length and the names of two nodes.
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <stdlib.h>
int xxx;
void count(int table1[][5], int table2[][5], int table3[][5], int cnt){
int temp=0;
int i;
int j;
int k;
cout<<"in count cnt="<<cnt<<endl;
for (i=0; i<=3; i=i+1){
for(j=0; j<=3; j=j+1){
for (k=0; k<=cnt; k=k+1)
table3[i][j]=table3[i][j]+ table1[i][ k]*table2[ k][j];
cout<<table3[i][j]<<endl;;
}
}
}
void multiple(int table[][5], int cnt, int size){
int i;
int j;
int k;
int tempk1[5][5];
int tempk2[5][5];
cout<<"in multi cnt="<<cnt<<endl;
cin>>xxx;
for (i=0; i<cnt; i=i+1){
for(j=0; j<cnt; j+j+1){
tempk1[i][j]=table[i][j];
cout<<"tempk1["<<i<<"]["<< j<<"]="<<t empk2[i][j ]<<endl;
cout<<"hello";
cin>>xxx;
}
}
for (i=1; i<size; i=i+1){
for (j=1; j<size; j=j+1){
count(table, tempk1, tempk2, cnt);
for (i=1; i<cnt; i=i+1){
cout<<"i'm in the first loop before tempk1";
for (j=1; j<cnt; j=j+1){
tempk2[i][j]=tempk1[i][j];
cin>>xxx;
}
}
}
}
}
void main()
{
int i, j;
int node1;
int node2;
int length;
int cnt;
int size;
int table[5][5];
int table3[5][5];
fstream outFile;
outFile.open("c:/mydocumen ts/test1.t xt",ios::i n);
cout<<"enter length number";
cin>>length;
cout<<"enter node from";
cin>>node1;
cout<<"enter node to";
cin>>node2;
cnt=length;
outFile>>size;
for (i=0; i<size; i=i+1){
for (j=0; j<size; j=j+1){
outFile>>table[i][j];
for (i=0; i<size; i=i+1){
for (j=0; j<size; j=j+1){
cout<<"table="<<table[i][j ];
multiple(table, cnt, size);
cout<<table[node1][node2];
}
}
}
}
outFile.close();
}
my program must calculate the number of connections of a given length which connect two nodes of a diagraph. My program read the original adjacency matrix from a file, which is this:
4
0 1 1 0
1 1 1 0
1 0 0 1
0 0 0 0
The program prompts the user for the desired connection length and the names of two nodes.
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <stdlib.h>
int xxx;
void count(int table1[][5], int table2[][5], int table3[][5], int cnt){
int temp=0;
int i;
int j;
int k;
cout<<"in count cnt="<<cnt<<endl;
for (i=0; i<=3; i=i+1){
for(j=0; j<=3; j=j+1){
for (k=0; k<=cnt; k=k+1)
table3[i][j]=table3[i][j]+
cout<<table3[i][j]<<endl;;
}
}
}
void multiple(int table[][5], int cnt, int size){
int i;
int j;
int k;
int tempk1[5][5];
int tempk2[5][5];
cout<<"in multi cnt="<<cnt<<endl;
cin>>xxx;
for (i=0; i<cnt; i=i+1){
for(j=0; j<cnt; j+j+1){
tempk1[i][j]=table[i][j];
cout<<"tempk1["<<i<<"]["<<
cout<<"hello";
cin>>xxx;
}
}
for (i=1; i<size; i=i+1){
for (j=1; j<size; j=j+1){
count(table, tempk1, tempk2, cnt);
for (i=1; i<cnt; i=i+1){
cout<<"i'm in the first loop before tempk1";
for (j=1; j<cnt; j=j+1){
tempk2[i][j]=tempk1[i][j];
cin>>xxx;
}
}
}
}
}
void main()
{
int i, j;
int node1;
int node2;
int length;
int cnt;
int size;
int table[5][5];
int table3[5][5];
fstream outFile;
outFile.open("c:/mydocumen
cout<<"enter length number";
cin>>length;
cout<<"enter node from";
cin>>node1;
cout<<"enter node to";
cin>>node2;
cnt=length;
outFile>>size;
for (i=0; i<size; i=i+1){
for (j=0; j<size; j=j+1){
outFile>>table[i][j];
for (i=0; i<size; i=i+1){
for (j=0; j<size; j=j+1){
cout<<"table="<<table[i][j
multiple(table, cnt, size);
cout<<table[node1][node2];
}
}
}
}
outFile.close();
}
What problems are you having?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
>> modify your program by referring to these local variables
ROTFLMAO!!!
ROTFLMAO!!!
ASKER
thanks anyway, but my program works now alright