Va rog!!!!!!!!!!!!!!!
Se consideră un tablou bidimensional cu m linii şi n coloane (1≤m≤100,1≤n≤100), ale cărui
elemente aparţin mulţimii {0,1,2}. Scrieţi un program C/C++ citeşte de la tastatură valorile
m, n şi elementele tabloului şi care afişează pe ecran numerele de ordine ale coloanelor
pentru care produsul elementelor situate pe ele, este maxim. Liniile şi coloanele tabloului
se numerotează de la 1 la m respectiv de la 1 la n. Numerele se vor afişa separate prin
câte un spaţiu.
5.
Exemplu: pentru m=4 şi n=4 şi tabloul alăturat se va afişa, nu neapărat în
această ordine:1 2
2 1 1 0
1 1 1 1
2 2 2 1
1 2 1 1
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int a[102][102], n, m, i, j, k, x[102], maxim, p;
int main()
{
cin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
cin>>a[i][j];
for(j=1; j<=m; j++)
{
p=1;
for(i=1; i<=n; i++)
p*=a[i][j];
x[++k]=p;
}
for(i=1; i<=k; i++)
{
if(x[i]>maxim)
maxim=x[i];
}
for(i=1; i<=k; i++)
if(x[i]==maxim)
cout<<i<<' ';
return 0;
}
Am procedat astfel: Mergand pe fiecare coloana, am determinat produsul elementelor si le-am pus intr-un vector numit x[]. Dupa acest pas, am identificat cea mai mare valoare pe care o gasim in vector, "maxim". La final, am parcurs din nou vectorul si acolo unde gasim elementele egale cu valoarea maxima, se va afisa pozitia acestora, care reprezinta acelasi lucru cu pozitia coloanelor. Practic, am lucrat problema in vectori.