Programma in C urgente

di il
44 risposte

Programma in C urgente

Ciao a tutti ragazzi ho bisogno di un'aiuto urgente per l'esame di programmazione C
viene chiesto di scrivere un programma che calcoli la somma massima tra gli elementi di una matrice A[j] , rispettando però la seguente considerazione se considero uno specifico elemento della matrice , esso deve essere sommato ad un altro elemento che non si trova nella sua stessa colonna .
Quindi devo implementare combinazioni del tipo
A 00 A 11 A 22 A 33 ...
oppure A 00 A 12 A 23 ... ecc
qualcuno riesce a darmi una dritta non so proprio da dove cominciare

44 Risposte

  • Re: Programma in C urgente

    Ciao federica,

    Inizia con una versione più semplice, calcola la massima somma tra due elementi, poi dopo sarà semplice aggiungere un if ed escludere la colonna.

    Se anche questo ti sembra difficile scrivi qualcosa di ancora più semplice, un doppio ciclo che scandisce tutte le celle e ne stampa il contenuto. Poi ne parliamo.
  • Re: Programma in C urgente

    Ok guarda partiamo dalla versione più semplice perchè io studio filosofia e questo esame è molto ostico ma voglio completare anche questo progetto per l'esame di domani

    per scandire tutte le celle di una matrice il codice dovrebbe essere questo

    for(i=0;i<V;i++) {
    for(j=0;j<F;j++){
    printf("%d",A[j]);

    }
    }

    preciso una cosa però il prof. ha spiegato che la clausola sulla colonna vale anche per le righe cioè le somme devo essere fatte in obliquo sostanzialmente anche saltando alcune posizioni cioè
    non devo sommare A00 A01 A02
    come anche A00 A10 ecc
    le somme massime sono da calcolare tra combinazioni del tipo
    A00 A11 A22 A33 ECC
    OPPURE A00 11 A22 A34 ECC
    devo praticamente fare sempre in modo che partendo da un elemento ne sommo un altro che occupa una posizione più a destra nella matrice ma non sulla stessa riga spero di essermi spiegata meglio
  • Re: Programma in C urgente

    Ok, allora facciamo prima la versione più semplice (tanto ci vuole poco) in cui cerchi la somma massima tra due elementi.
    Posta tutto il codice che hai, la dichiarazione della matrice, il main ecc. Partiamo da qualcosa di funzionante e lo completiamo passo passo.
  • Re: Programma in C urgente

    Ecco i dubbi sono proprio a questo punto nel senso che se sono sull'elemento A 00 il doppio ciclo for che ho scritto mi portebbe ad analizzare l'elemento A 01 che a me non serve perchè devo arrivare ad A11 e da li scendere ad A 22 fino ad A FF alla prima iterazione ; poi devo rifare tutto il percorso aggiungendoci A F F+1 anzichè di A FF ottenendo una nuova somma di elementi che rispettano le clausole dell'esercizio ; ma non so proprio come impostare il tutto .
    Preciso che per noi F sono il numero di righe della matrice e V il numero di colonne e che si suppone che F sia minore di V in maniera tale da avere una matrice rettangolare che ci consenta di fare tutte queste somme che io chiamo scalate e tra tutte queste somme va trovata la somma massima indicando quali elementi della matrice ho individuato per ottenere tale somma
  • Re: Programma in C urgente

    Tranquilla, un passo alla volta. Comincia a scrivere qualcosa, basta la dichiarazione della matrice, il main e magari il ciclo che mostra a video gli elementi.

    Formatta il tuo messaggio usando i tag 'code' per racchiudere il codice, come in questo esempio:
    
    void MyFunc(int a)
    {
    }
    
  • Re: Programma in C urgente

    
    #include <stdio.h>
    
    void main() {
    int A[10][10];
    int i,j,V,F;
    
    scanf("%d",&V); //legge numero colonne
    scanf("%d",&F); //legge numero righe
    
    // lettura elementi matrice
    for(i=0;i<F;i++) {
    for(j=0;j<V;j++){
    scanf("%d",&A[i][j]);
    
    }
    }
    
    //visualizzazione elementi matrice
    for(i=0;i<F;i++) {
    for(j=0;j<V;j++){
    printf("%d",A[i][j]);
    }
    printf("\n");
    }
    }
    
  • Re: Programma in C urgente

    Ok.

    Hai sottomano un compilatore?
    È molto importante provare il codice mentre lo scrivi ed avere sempre una versione funzionante senza errori di compilazione.

    Quello che hai scritto ad esempio non si compila.
  • Re: Programma in C urgente

    Purtroppo no solo in uni lo abbiamo sulle postazioni pc
    trovato l'errore il %d che specifica un intero va tra due apici giusto e mancava & accanto alle variabili da leggere
  • Re: Programma in C urgente

    Questo è un bel problema, senza un ambiente di sviluppo è impossibile che tu riesca a preparare questo esercizio per domani.
    Ci sono anche altri errori, non puoi lavorare senza un compilatore. Devi procurartene uno assolutamente.
  • Re: Programma in C urgente

    Cavolo bel problema ci sono compilatori c online ?
  • Re: Programma in C urgente

    Va a finire che passi tutta la giornata installando programmi che non funzionano o non sai usare.

    Penso che non violiamo nessun regolamento se tu scrivi il programma e io ti faccio da compilatore.
    Poi procuratene uno come quello che usi in università:
    
    #include <stdio.h>
    
    void main() 
    {
    	const int V = 10;
    	const int F = 10;
    	int temp;
    	int A[V][F];
    	int i,j;
    
    	// lettura elementi matrice
    	for(i=0; i < V; i++) 
    	{
    		for(j=0; j < F; j++)
    		{
    			scanf("%d", &temp );
    			A[i][j] = temp;
    		}
    	}
    
    	//visualizzazione elementi matrice
    	for(i=0; i<V; i++) 
    	{
    		for(j=0; j<F; j++)	
    		{
    			printf("%d",A[i][j]);
    		}
    	}
    }
    
    Partiamo da questo e vediamo se trovi gli errori che avevi fatto.
  • Re: Programma in C urgente

    Grazie mille =)
    siamo al punto che acquisiamo gli elementi della matrice e che
    li visualizziamo tutti ora da qui dobbiamo riuscire a fare le somme tra elementi che rispettano le clausole
  • Re: Programma in C urgente

    Tra poco il programma diventera troppo complicato per poter essere scritto tutto nel main(), arriveresti ad un punto in cui non capisci più niente. Conviene dividerlo in funzioni.

    Saresti capare di dichiarare la matrice come variabile globale (e non interna al main) e scrivere due funzioni una per acquisire i dati e l' altra per stamparli?
  • Re: Programma in C urgente

    Ora vado a mangiare ci sentiamo dopo.
Devi accedere o registrarti per scrivere nel forum
44 risposte