Informatică, întrebare adresată de OleE, 9 ani în urmă

Scrieţi un program C/C++ care citeşte de la tastatură numerele naturale m şi n din
intervalul [1,20], apoi construieşte în memorie şi afişează pe ecran un tablou
bidimensional cu m linii şi n coloane astfel încât prin parcurgerea acestuia linie cu linie desus în jos şi fiecare linie de la stânga la dreapta, se obţin în ordine descrescătoare toatenumerele naturale de la 1 la m*n, ca în exemplu.
Fiecare linie a tabloului este afişată pe câte o linie a ecranului, elementele
aceleiaşi linii fiind separate prin câte un spaţiu.
Exemplu: pentru m=4 şi n=3 se va construi şi afişa tabloul alăturat.
12 11 10
9 8 7
6 5 4
3 2 1

Răspunsuri la întrebare

Răspuns de rosudavidgabriel
0
int count = 1;

// Construirea matricei
for(i = m - 1; i >= 0; i--)
for(j = n - 1; j >= 0; j--) {
a[i][j] = count;
count++;
}
// a - matricea
// m - linii
// n - coloane

OleE: salut eu nu am inteles ce ai facut acolo
rosudavidgabriel: Parcurgi matricea invers, pentru a pune elementele in ordine crescatoare. Incepi cu elementul 1, in count, iar la fiecare pas il cresti cu 1.
OleE: ai fb
OleE: sa te intreb mai multe chestii
OleE: mie in codeblocks nu imi merge problema ta
rosudavidgabriel: Nu e toata rezolvarea aici, intru mai tarziu si iti scriu tot
rosudavidgabriel: #include <stdio.h>

int main()
{
int m, n;

// Citire date
printf("Dati numarul de linii = ");
scanf("%d", &m);
printf("Dati numarul de coloane = ");
scanf("%d", &n);

int a[m][n];
int i, j, count = 1;

// Creare matrice
for(i = m - 1; i >= 0; i--)
for(j = n - 1; j >= 0; j--) {
a[i][j] = count;
count++;
}

// Afisare matrice
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++)
printf("%d", a[i][j]);
printf("\n");
}

return 0;
}
Alte întrebări interesante