Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [c++] massimo e minimo delle due diagonali

    Salve a tutt sono nuovo del forum e scrivo perche mi sono incartato in questo programma:


    Non riesco a scrivere né il minimo sulla diagonale principale ne su quella secondaria!!!
    Il programma su scritto mi da correttamente i valori di tutti e due i massimi ma per i minimi mi da sempre 0!!!
    Help me domani ho l'esame di informatica !!!
    codice:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    /*sia m*n matrice immessa da utente,.
    Scrivere un programma che definisca un vettore v di 4 elementi,
    i cui valori siano:
          -il massimo sulla diagonale principale posizione v[0]
          -il massimo sulla diagonale secondaria posizione v[1]
          -il minimo sulla diagonale principale posizione v[2]
          -il minimo sulla diagonale secondaria posizione v[3]
          */
          
    int main(int argc, char *argv[])
    {
        int A[50][50], M, N, i, j;
        cout<<"inserire elementi righe";cin>> M;cout<<endl;
        cout<<"inserire elementi colonne";cin>>N ;cout<<endl;
        for (i=0;i<M;i++)
        for (j=0;j<N;j++)
        {
        cout<<"Elemento["<<i<<"]["<<j<<"]";cin>> A[i][j];cout<<endl;
    }
        // lettura a video matrice!
        for (i=0;i<M;i++)
        {
        for (j=0;j<N;j++)
        cout<<A[i][j];cout<<"  ";cout<<endl;
    }
    //massimo sulla diagonale principale
    int maxp;
    A[0][0]=maxp;
    for (i=0;i<M;i++)
    {
    for (j=0;j<N;j++)
    if(i==j)
    if (maxp<A[i][j])
    maxp=A[i][j];
    }
    //minimo sulla diag principale
    int minp;
    for (j=0;j<N;j++)
    {
        A[0][j]=minp;
        for(i=0;i<M;i++)
        {
                        if(i==j)
                        {
                                if(minp>A[i][j])
                                minp=A[i][j];
                                }}}
                                
    //massimo sulla diagonale secondaria
    int maxs;
    A[0][N]=maxs;
    {
    for(j=N-1;j>=0;j--)
    for(i=0;i<M;i++)
    {
                    if (A[i][j]=A[i][N-1-i])
    if (maxs<A[i][j])
    maxs=A[i][j];
    }
    }
    
    //minimo sulla secondaria
    
    cout<<maxp;cout<<endl;
    cout<<maxs;cout<<endl;
    cout<<minp;cout<<endl;
    
        system("PAUSE");
        return EXIT_SUCCESS;
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Formatta il codice usando il tag [CODE], come indicato nel Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ho fatto come dicevi ma non si capisce nulla ora :S

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da andreadido
    ho fatto come dicevi ma non si capisce nulla ora :S
    Leggi bene il Regolamento:

    Formatta il codice sorgente: quando riporti il codice sorgente nel forum, questo va racchiuso nel tag [CODE ][/CODE] per poter essere leggibile (attiva la "modalità avanzata", usa il pulsante apposito - CODE - per inserire il tag di apertura, copia il codice nel messaggio e premi di nuovo il pulsante per chiudere il tag). [...] Se il codice è lungo, riporta solo la parte rilevante o interessata dal problema. [...]
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Probabilmente hai già avuto il compito di informatica, ma ti dico lo stesso l'errore.

    codice:
    int maxp;
    A[0][0]=maxp;

    codice:
    int minp;
    A[0][0]=minp;
    Queste istruzioni non hanno senso. Dichiari una variabile senza inizializzarla, e poi modifichi la matrice (cosa che non dovresti fare) inserendo la variabile non inizializzata, che conterrà chissà che cosa (dipende cosa hai in memoria), probabilmente nemmeno codificabile.

    codice:
    int maxp;
    maxp=A[0][0];

    codice:
    int minp;
    minp=A[0][0];
    Così va meglio. maxp e minp devono essere l-value.

    P.S. ma ha senso riferirsi a "diagonale principale" e "diagonale secondaria" per una matrice non quadrata?

  6. #6
    Fortunatamente l'esame ce l'ho oggi alle 15.30....comunque si la condizione per la matrice quadrata l'avrei messa dopo....
    In conclusione l'errore stava nel fatto che ho invertito l'ordine di minp e maxp rispetto alla matrice.....che macello st'esame...ahahah speriamo bn :P

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da andreadido
    In conclusione l'errore stava nel fatto che ho invertito l'ordine di minp e maxp rispetto alla matrice.....
    Ti sembra niente ... non sapere come funziona l'assegnazione di una variabile è grave in quanto è l'abc (anzi, anche meno dell'abc) ...

    In bocca al lupo per l'esame ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Si vabbe considera che l'esame di informatica non è un esame complesso ad ingegneria meccanica...rispetto a quello che facciamo è na cazz...!!
    Quindi anche la prof sapendolo è molto piu tranquilla...
    poi sto da mercoledi scorso a fa ste cose e so partito da 0...nn ho manco seguito il corso...figurati!
    SPERIAMO BENE....
    Se vi pubblico il testo dell'esame me lo fate a volo?
    ahahahah
    SCHERZO OVVIAMENTE!(ho gia chi ma lo fa) :P

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.