Vissza

Kétdimenziós tömbök

Házi feladatok:
  1. Adott egy nxn-es mátrix, melyeknek elemeit véletlenszerű egész számokkal töltsük fel. Írjuk ki a mátrixot táblázatos formában majd határozzuk meg a főátló legkisebb elemét. 
  2. Adott egy nxn-es mátrix, melyeknek elemeit véletlenszerű egész számokkal töltsük fel. Írjuk ki a mátrixot táblázatos formában majd határozzuk meg soronként az elemek összegét, áttéve ezeket az értékeket egy, egydimenziós tömbbe.
  3. Hozzunk létre egy nxn-es mátrixot, ahol ( Példa ) n=5 -re a mátrix a megadott struktúrájú.
  4. Hozzunk létre egy nxn-es mátrixot, ahol ( Példa ) n=5 -re a mátrix a megadott struktúrájú.
  5. Hozzunk létre egy nxn-es mátrixot, ahol ( Példa ) n=5 -re a mátrix a megadott struktúrájú.
  6. Hozzunk létre egy nxn-es mátrixot, ahol ( Példa ) n=5 -re a mátrix a megadott struktúrájú.
  7. Hozzunk létre egy nxm-es mátrixot, ahol ( Példa ) n=5 és m=6 -ra a mátrix a megadott struktúrájú.
Megoldott feladatok:

1. Adott egy n x m-es mátrix, melyeknek elemeit véletlenszerű egész számokkal töltünk fel. Írjuk ki a mátrixot táblázatos formában majd határozzuk meg a mátrix  legnagyobb elemét és ezen elem pozicíóját.
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
    int n, mat[10][10];
    int i, j, maxi, m, mi, mj;
    cout << "n: ";
    cin >> n;
    cout << "m: ";
    cin >> m;
    if (n >= 10 || m >= 10 )
    {
        cout << "Error:: beolvasott ertek >= 10" << endl;
        return 0;
    }

    srand(time(NULL));
    for(i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            mat[i][j] = rand() % 100;
            cout << setw(5) << mat[i][j];
        }
        cout << endl;
   
}
    maxi = mat[0][0];
    mi = 0;
    mj = 0;
   
for(i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            if (mat[i][j] > maxi) {
                maxi = mat[i][j];
                mi = i;
                mj = j;
            }
    cout << endl << "A maximum elem: " << maxi;
    cout << endl << "A maximum elem pozicioi: ";
    cout << mi + 1 << " " << mj + 1;
    cout << endl << endl;
    return 0;
}

Vissza

2. Hozzunk létre egy n x m-es mátrixot, ahol ( Példa ) n=5 és m=3 -ra a mátrix a megadott struktúrájú.
#include <iostream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
int main()
{
    int n, m, mat[10][10];
    int i, j, k;
    cout << "n: ";
    cin >> n;
    cout << "m: ";
    cin >> m;
    if (n >= 10 || m >= 10 )
    {
        cout << "Error:: beolvasott ertek >= 10" << endl;
        exit(1);
    }

    k = n * m;
   
for (i = 0; i < n; i++)
        for (j = 0; j < m; j++) {
            mat[i][j] = k;
            k--;
        }

   
for (i = 0; i < n; i++) {
       
for (j = 0; j < m; j++)
            cout << setw(5) << mat[i][j];
        cout << endl;
    }
    cout << endl << endl;
    return 0;
}


A fenti feladatok standard C író/olvasó függvényekkel
1. Adott egy nxn-es mátrix, melyeknek elemeit véletlenszerű egész számokkal töltsük fel. Írjuk ki a mátrixot táblázatos formában majd határozzuk meg a mátrix  legkisebb elemét és ezen elem pozicíóját.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int n, mat[10][10];
    int i, j, max, m, mi, mj;
    printf("n: ");
    scanf("%i", &n);
    printf("m: ");
    scanf("%i", &m);
    if (n>=10 || m>=10 )
    //hibakezeles

    {
        printf("Error:: beolvasott ertek >= 10 \n");
        return 0;
    }
   
    srand(time(NULL));
    for(i = 0; i < n; i++) {
        for (j = 0; j < m; j++)
        //vegig megyunk az osszes oszlopbeli elemen
        {
            mat[i][j] = rand() % 100; //ertekadas
            printf("%3i", mat[i][j]); //kiiratas
        }
        printf("\n");
        //ujsorba megyunk ha kiirtuk a matrix egy adott sorat

    }
    maxi = mat[0][0];
    mi = 0;
    mj = 0;

    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            if (mat[i][j] > maxi) {
                maxi = mat[i][j];
                mi = i;
                mj = j;

            }
    printf("\nA maximum elem: %i", maxi);
    printf("\nA maximum elem pozicioi: %i, %i", mi+1, mj+1);
    //printf("\nA maximum elem pozicioi: %i, %i", mi,mj);
    printf("\n\n");
    return 0;
}


2. Hozzunk létre egy nxm-es mátrixot, ahol ( Példa ) n=5 és m=3 -ra a mátrix a megadott struktúrájú.
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, m, mat[10][10];
    int i, j, k;
    printf("n: ");
    scanf("%i", &n);
    printf("m: ");
    scanf("%i", &m);
    if (n >= 10 || m >= 10 ) //hibakezeles
    {
        printf("Error:: beolvasott ertek >= 10 \n");
        exit(1);
    }
    k = n * m;
    //feltoltes
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++) {
            mat[i][j] = k;
            k--;
        }
    //kiiratas
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++)
            printf("%5i", mat[i][j]);
        printf("\n");
    }
    printf("\n\n");
    return 0;
}




2. megoldott feladat
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
Vissza


3. feladat
1
1
1
1
1
1
4
1
1
1
1
1
9
1
1
1
1
1
16
1
1
1
1
1
25
Vissza


4. feladat
1
2
3
4
5
-1
-1
-1
-1
-1
6
7
8
9
10
-1
-1
-1
-1
-1
11
12
13
14
15
Vissza


5. feladat
15
14
13
12
11
-1
-1
-1
-1
-1
10
9
8
7
6
-1
-1
-1
-1
-1
5
4
3
2
1
Vissza

6. feladat
0 0
0
0
1
0 0
0
2
0
0 0
4
0
0
0 0
0
0
16
0
0
0
Vissza


7. feladat
1
1
1
1
1
5
2
2
2
2
2
10
3
3
3
3
3
15
4
4
4
4
4
20
5
5
5
5
5 25
Vissza