Теперь я улучшаю свой код, но ....
я делаю умножение матрицы 4x4, оно работает отлично. теперь я пытаюсь добавить операцию сложения, но получаю следующее " [ошибка] недопустимые типы 'int[int]' для индекса массива""
что плохого в этом?
Что я уже пробовал:
#include<iostream> #include<conio.h> using namespace std; class result { public: int mlt[4][4]; int i,j; int add[4][4]; void multipication_matrices(int a[4][4],int b[4][4]) { int i,j,k,mult; for(i = 0; i < 4; ++i) { for(j = 0; j < 4; ++j) { for(k = 0; k < 4; ++k) { mlt[i][j] += a[i][k] * b[k][j]; } } } /* YAZDIRMA İŞLEMİ */ for(i = 0; i < 4;i++) { for(j = 0; j < 4;j++) { cout << " " << mlt[i][j]; if(j == 4-1) cout << endl; } } } void addition_matrices(int a[4][4],int b[4][4]) { int i,j,add; for(i=0; i<4; i++){ for(j=0; j<4; j++) { add[i][j] = a[i][j] + b[i][j]; // mistake [Error] invalid types 'int[int]' for array subscript }} for(i=0; i<4; i++) { for(j=0; j<4; j++) cout<<add[i][j]<<"\t"; // mistake [Error] invalid types 'int[int]' for array subscript cout<<" ";52 19 } cout<<" "; } }r; int main() { int i,j,k,mult; int array1[4][4],array2[4][4],mlt[4][4] = {0}; cout << "Enter elements of matrix 1:" << endl; for(i = 0; i < 4; ++i) for(j = 0; j < 4; ++j) { cout << "Enter element a" << i + 1 << j + 1 << " : "; cin >> array1[i][j]; } // Storing elements of second matrix. cout << "Enter elements of matrix 2:" << endl; for(i = 0; i < 4; ++i) for(j = 0; j < 4; ++j) { cout << "Enter element b" << i + 1 << j + 1 << " : "; cin >> array2[i][j]; } r.multipication_matrices(array1,array2); r.addition_matrices(array1,array2); return 0; }
Patrice T
Можете ли вы попытаться составить предложения ?
и объясните, в чем проблема.
[no name]
Взгляните сюда еще раз, решение 2, и возьмите его за основу:Почему выходные данные программы таковы в C++?[^]
Member 13465205
я стараюсь делать фукцию в классе .
[no name]
Я знаю об этом. Тем не менее, пример там отличный, и это не должно быть большой вещью, чтобы переместить его в свой класс
Member 13465205
я не знаю, что делаю. я делаю другую форму, но я пытаюсь преобразовать функцию в классе. это трудно для меня :/
Richard MacCutchan
Вчера я дал вам предложенный класс, который вы могли бы легко адаптировать, чтобы включить сложение. Почему вы все еще пытаетесь сделать это таким трудным способом? Особенно смотреть в вашем коде:
void addition_matrices(int a[4][4],int b[4][4])
{
int i,j,add;
Почему вы определили одно целое число с тем же именем, что и Ваш массив?