В ответе везде одинаковые числа,в чем может быть проблема? Code: #include <iostream> using namespace std; int main() { int a[2][4]={0}; int b[2][4]={0}; int c[2][4]={0}; int d=0,f=0,g,h,i,j; while (d<8)//заполнение 1 матрицы { cin>>g; if (g!=0) { for(i=0;i<2;i++) { for(j=0;j<4;j++) { a[i][j]=g; } }d=d+1; } } while (f<8)//заполнение 2 матрицы { cin>>h; if (h!=0) { for(i=0;i<2;i++) { for(j=0;j<4;j++) { b[i][j]=h; } }f=f+1; } } for(i=0;i<2;i++) //Сложение 2-х матриц в 3 { for(j=0;j<4;j++) { c[i][j]=a[i][j]+b[i][j];cout<<c[i][j]<<endl; } } return 0; }
потому что ты херню написал когда ты вводишь число, оно записывается во все елементы массива, естественно ввёл второе, то второе будет перезаписано поверх остальных, в итоге и получается всё одинаковое
так как массив забивался в начале программы нулями поэтому нули проходят даже если их не было в ведено PHP: int a[2][4]={0}; int b[2][4]={0}; int c[2][4]={0};
PHP: for(i=0;i<2;i++) { for(j=0;j<4;j++) { cin>>g; if(g != 0) { a[i][j]=g } } } вот что на получается Code: 0 0 0 1 2 3 4 5 6 7 8 0 0 0 9 10 6 7 8 1 2 3 13 15 Process returned 0 (0x0) execution time : 16.526 s Press any key to continue. Если предположить что в разреженной матрице более 500 чисел,а не равных нулю всего 16 то этот способ не подойдет. Думаю лучше использовать динамический массив Хотя если нам известно первоначальное количество чисел то вы правы.
И с каого перепугу оно так получаетсяя? что ты вводишь? у меня нормально всё получается, покажи вессь код
PHP: #include <iostream> using namespace std; int main() { int a[2][4]={0}; int b[2][4]={0}; int c[2][4]={0}; int d=0,f=0,g,h,i,j; for(i=0;i<2;i++) { for(j=0;j<4;j++) { cin>>g; if (g!=0) { a[i][j]=g;} } } for(i=0;i<2;i++) { for(j=0;j<4;j++) { cin>>h; if (h!=0){ b[i][j]=h;} } } for(i=0;i<2;i++) //Сложение 2-х матриц в 3 { for(j=0;j<4;j++) { c[i][j]=a[i][j]+b[i][j];cout<<c[i][j]<<endl; } } return 0; } Хотя если нам известно первоначальное количество чисел то вы правы.
хм,что-то не сходится: ввел 1 разреженную матрицу: 0 1 2 0 5 5 0 0 ввел 2 разреженную матрицу: 1 2 3 4 0 0 0 0 получил: 1 3 5 4 5 5 0 0 а должно быть на выходе: 2 4 8 9 0 0 0 0