Scrieţi un program care citeşte un tablou bidimensional cu m linii şi n coloane (m<=30, n<=30) care memorează numere întregi de cel mult patru cifre fiecare. Să se afişeze numerele de ordine ale liniilor care conţin valoarea x citita cel puţin odată.
Exemplu: pentru m=3, n=4, x=5 şi tabloul:
2 3 5 5
1 2 4 6
5 0 7 8
se afişează. 1 şi 3.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int L[51], m,n,i,j,x, num, gasit=0;
int main()
{
cout << "nr. de linii m= "; cin >> m;
cout << "nr. de coloane n= "; cin >> n;
cout << "introdu numarul x, x= "; cin >> x;
cout << "introdu elementele tabloului bidimensional: " << endl;
for (i=1; i<=m; ++i)
{
for (j=1; j<=n; ++j)
{
cin >> num;
if (num==x) { L[i]=1; gasit=1;}
}
}
cout << "Liniile ce contin pe x cel putin odata sunt: ";
if (gasit==0) { cout << " nu exista..."; }
else
{
for (i=1; i<=m; ++i)
if (L[i]==1) cout << i << " ";
}
}
Explicație:
nu am memorat tabloul bidimensional, am generat un tablou unidimensional in care punem 1 dacă în linia respectiva se conţine măcar odată numărul x cu afilşarea ulterioară a liniilor