Jump to content

Recommended Posts

Posted

Urasc matricile. Totusi, imi dati o idee?

Scrieţi un program C/C++ care citeşte de la tastatură două valori naturale nenule m şi n (m≤10, n≤10) şi apoi m*n numere naturale nenule cu cel mult 4 cifre fiecare, reprezentând elementele unei matrice cu m linii şi n coloane. Programul determină apoi valorile minime de pe fiecare linie a matricei şi le afişează pe o linie a ecranului separate prin câte un spaţiu.

Am in cap cum ar trebui sa fac, dar nu reusesc sa scriu subprogramul. Ar trebui sa parcurg fiecare linie si sa compar fiecare termen cu primul, care l-am facut min.

Eu asa am incercat;

#include<iostream>
using namespace std;
int main()
{
    int a[50][50],m,n,i,j,min=0;
    cout<<"Introdu m"; cin>>m;
    cout<<"Introdu n"; cin>>n;
    for (i=1; i<=m; i++)
    for (j=1; j<=n; j++)
    {
        cout<<"a["<<i<<"]["<<j<<"]=";
        cin>>a[i][j];
    }
        min=a[1][1];
        cout<<min;
        for (i=1; i<=m; i++)
            for (j=1; j<=n; j++)
        {
            min=a[i][j];
            if (min<a[i][j])
                cout<<min;
        }
    return 0;
}

  • Moderators
Posted
#include <cstdio>

int main (void)
{
    int m, n, i, j, min, a[30][30];
    
    printf("m="); scanf("%d", &m);
    printf("n="); scanf("%d", &n);
    
    for (i=1 ; i <= m ; i++)
    {
        for (j=1 ; j <= n ; j++)
        {
            printf("a[%d][%d]=", i, j);
            scanf("%d", &a[i][j]);
        }
    }
    
    for (i=1 ; i <= m ; i++)
    {
        min = a[i][1];
        for (j=2 ; j <= n ; j++)
        {
            if (min > a[i][j])
                min = a[i][j];
        }
        printf("%d ", min);
    }
    
    return 0;
}
Posted

Deci in prima faza citesti toata matricea.

Bun.

 

Dupaia de ce alegi a[1][1] ca minim, cand pe tine te intereseaza minimul fiecarei linii? 

dupaia, ce face codul asta?

min=a[i][j];
if (min<a[i][j])
cout<<min;
 

Daca lu 'min' ii dai valoarea elementului curent (a[j]), dc ar fi mai mic decat a[j]? 


Courage, faptul ca ii dai raspunsul direct nush cat o sal ajute :))  Si ca sa fiu carcotas, nu trebuia sa stochezi toata matricea.. poti doar sa citesti element cu element si sa faci acolo verificarea, imediat dupa citire. :)) 

love is a verb
Love is a doing word

  • Moderators
Posted

Courage, faptul ca ii dai raspunsul direct nush cat o sal ajute :))  Si ca sa fiu carcotas, nu trebuia sa stochezi toata matricea.. poti doar sa citesti element cu element si sa faci acolo verificarea, imediat dupa citire. :))

Şi stocarea valorilor minime în vector ?

Posted
#include <fstream>

using namespace std;

ifstream fin("date.in");
ofstream fout("date.out");

int main() {
    int N, M;
    int minim, nr;

    fin >> N >> M;

    for(int i = 1; i <= N;i++) {
        fin >> minim;

        vector <int> V_Min;

        int aparitii = 1;

        for(int j = 2; j <= M; j++) {
            fin >> nr;

            if(nr < minim) {
                minim = nr;
                aparitii = 1;
            }
            else if(nr == minim) ++aparitii;
        }

        fout << "Pe linia " << i << " minimul este " << minim << " si apare de " << aparitii << " orin";
    }

    fin.close();
    fout.close();

    return 0;
}

Se poate si fara matrice, si fara vectori, si fara multe... :D

Eu teoretic pentru fiecare linie, fac in felul urmator:

* presupun ca primul element e minimul

* citest urmatoarele M - 1 elemente (N - numarul de linii si M - numarul de coloane), iar pentru fiecare numar citit, vad daca am gasit un nou minim :)

Daca iti iese un program din prima, inseamna ca ceva e gresit...

Posted

exact asta a facut si courage.. doar ca a afisat totusi mai frumos, la sfarsit. Si a rezolvat cerinta, nu a modificat-o adaugand ceva.. si nerespectand cerinta in privinta afisarii (cum mi-a atras si mie atentia :)) )

Si vezi ca ai uitat sa stergi acel 'vector <int> V_Min;' :))

  • Upvote 1

love is a verb
Love is a doing word

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.