Mnożenie 2 tablic

0

Mam 2 tablice. Jedna 6 elementowa, druga 3 elementowa. Chcialbym je wymnozyc w ten sposob:

int tab1, tab2;

tab1[0]*tab2[0]
tab1[1]*tab2[1];
tab1[2]*tab2[2];

tab1[0]*tab2[3]
tab1[1]*tab2[4];
tab1[2]*tab2[5];

Jak to ładnie zapisać?

0
for(int i=0;i<3;i++)
        tab[i]=(tab[i]*tab1[i])+(tab[i]*tab[i+3]);

Znaczy zależy co chcesz zrobić, bo z tego nie wynika czy chcesz to dodawać, czy nadawać nową wartość..

0

Moze dam cały kod, to bedzie łatwiej

#include <iostream>
using namespace std;

int main(){
    
    int tab1[] = {1,2,3};
    int tab2[][6] = {{1,2,3,4,5,6},
                     {9,8,7,5,4,3},
                     {1,3,5,7,9,0},
                     {2,4,6,8,0,1}};
                
/*
Chce wymnozyc:
     tab1        tab2
     {1,2,3} * {1,2,3}
     {1,2,3} * {4,5,6}
     {1,2,3} * {9,8,7}
     {1,2,3} * {5,4,3}
     {1,2,3} * {1,3,5}
     {1,2,3} * {7,9,0}
     {1,2,3} * {2,4,6} 
     {1,2,3} * {8,0,1}   
*/                
                
                     
    int ileRazy = 2;
    int wynik = 0;
    int m = 0;
                     
    for(int i=0; i<4; i++)
    {
     int k = 0;
     m = 0;
     while(k < ileRazy)
     {
      for(int j=0; j<3; j++)
      {
       wynik = tab1[j] * tab2[i][m];
       m++;
       cout << wynik << endl;
      }
      k++;
     } 
    }
                     
    cin.get();
    return 0;
}

W komentarzau mam nadzieje dosyc dobrze wytlumaczylem, o co mi chodzi :) Proszę o pomoc, bo program mi się wywala. W Dev-Cpp działa dobrze, ale prezczytalem u Was, że CodeBlocks jest lepszy, zainstalowałem go, i pokazuje błedy, a ja nie wiem, jak to poprawić :(

0

Konkretnie chodzi o to, że jakby te "j" jadą po całej tab1, a m zwiększa się, czyli najpierw mnoży pierwszą połowę tablicy, potem drugą, itd (tab2). Błędy są takie, że pisze "Program przestał działać" :/

0

U mnie działa na C::B.

0

No chcę sobie coś takiego zrobić, potrzebne do trochę większego programu ;)

/*
Chce wymnozyc:
     tab1        tab2
     {1,2,3} * {1,2,3}
     {1,2,3} * {4,5,6}
     {1,2,3} * {9,8,7}
     {1,2,3} * {5,4,3}
     {1,2,3} * {1,3,5}
     {1,2,3} * {7,9,0}
     {1,2,3} * {2,4,6} 
     {1,2,3} * {8,0,1}   
*/

Czyli dokładnie:

11, 22, 33 - pierwszy wiersz
1
4, 25, 36 - drugi wiersz
19, 28, 3*7 - trzeci wiersz, i tak dalej ...

A w QtCreatorze też się "wywala" :(

0

A spróbuj z cout << m << endl; w tej pętli, zobacz, jakie m ma wartości - a przecież powinno przyjmować wartości od 0 do 5, a ja mam od 0 do 6, czyli coś jest źle :(

0

Sorry, literówka powyżej : u mnie m ma wartości z przedziału [1,6], a nie [0,5]

0

A powinno być [0,5] właśnie ;/

0

Ale ogólny pomysł na algorytm jest dobry?

0

Pisz jak człowiek.. co z tego, że pomnożysz jak nigdzie tego nie zapisujesz! Po prostu chcesz mnożyć dla zabawy, czy gdzieś chcesz mieć wynik.. Jak tak to czego?

jakaś zmienna równa 11+ 22+ 3*3 ???
Pisz precyzyjnie, bo na miłość boską kodem się zajmujesz!

1 użytkowników online, w tym zalogowanych: 0, gości: 1