Risultati da 1 a 6 di 6
  1. #1
    Senior Member L'avatar di clank
    Data Registrazione
    Thu Dec 2004
    Località
    tuxland
    Messaggi
    348

    Predefinito trova l'errore c, parte quarta

    #include <stdio.h>

    /* Calcolo media voti per studente e per prova /*

    #define n 4
    #define m 5

    float voti [n][m];

    main()
    {
    int i, j;
    printf("Caricamento dei voti\n\n");
    m=m-2
    for(i=0; i<n; i++)
    for(j=0; j<m-2; j++)
    {
    printf("Ins. studente %d prova %d: ", i,j);
    scanf("%f", &vot[i][j]);
    }

    /*calcolo medie x studente */
    for(i=0; i<n, i++)
    {
    voti[i-1][m] = 0;
    for(j = 0; j<m; j++);
    voti[i-1][m] = voti[i-1][m] + voti[j][i];
    voti[i-2][m] = voti[i-2][m] = voti[i-1][m] \ (m-1)
    }
    /* calcolo medie x prova */
    for(j=0); j>m;j++)
    {
    voti[n-1][j] = 0;
    for(i=0; i<n+1; i++):
    voti[n-1][j] = voti[n-1][j] + voti[i][j];
    voti[n-1][j] = voti[n-1][j] / (n-1);
    }

    printf("\n\n\t\j VISUALIZZAZIONE DELLA MATRICE");
    for(i=0; i<n; i++)
    {
    printf("\n");
    for(j=0; j<m; j++)
    printf("%8.3f", voti[i][j]);

    }

    }




    ora sfido qualsiasi sano di mente inclusi derfel e sirbonea risolvere questo enigma di programmazione, dove ci sono errori di runtime e errori fisici di cui si ci può accorgere con un compilatore.
    qualsiasi errore fisico verrà trovato verrà sottolineato e colorato nel testo originale per quelli di runtime verranno scritti nuovi post.
    adesso per darvi una mano vi scrivo anche l'outputdi questo casino ( in versione corretta ) con una trentacinquina ( si può dire no? ) di errori:


    OUTPUT:
    Ins. studente 1 prova 1: 4
    Ins. studente 1 prova 2: 5
    Ins. studente 1 prova 3: 4
    Ins. studente 1 prova 4: 7
    Ins. studente 2 prova 1: 8
    Ins. studente 2 prova 2: 10
    Ins. studente 2 prova 3: 8
    Ins. studente 2 prova 4: 10
    Ins. studente 3 prova 1: 6
    Ins. studente 3 prova 2: 7
    Ins. studente 3 prova 3: 8
    Ins. studente 3 prova 4: 6


    VISUALIZZAZIONE DELLA MATRICE

    4.000 5.000 4.000 7.000 5.000
    8.000 10.000 8.000 10.000 9.000
    6.000 7.000 8.000 6.000 6.750
    6.000 7.333 6.667 7.667 6.917


    bando alle ciance e programmate!

    p.s.
    il primo che c'è la farà avrà un regalino da parte mia

  2. #2
    A morte i camperoni! L'avatar di Darkito
    Data Registrazione
    Sat May 2006
    Località
    Catania
    Messaggi
    4,083

    Predefinito

    [QUOTE=clank;518351]#include <stdio.h>

    #define n 4
    #define m 5

    float voti [n][m];

    main()
    {
    int i, j;
    printf("Caricamento dei voti\n\n");
    m=m-2
    for(i=0; i<n; i++)
    for(j=0; j<m-2; j++)
    {
    printf("Ins. studente %d prova %d: ", i,j);
    scanf("%f",&vot[i][j]); //trattandosi di un vettore & viene omessa
    }

    /*calcolo medie x studente */
    for(i=0; i<n, i++)
    {
    voti[i-1][m] = 0; con [i-1]
    for(j = 0; j<m; j++); il ;
    voti[i-1][m] = voti[i-1][m] + voti[j][i];
    voti[i-2][m] = voti[i-2][m] = voti[i-1][m] \ (m-1) manca il ;
    }
    /* calcolo medie x prova */
    for(j=0); j>m;j++)
    {
    voti[n-1][j] = 0;
    for(i=0; i<n+1; i++):
    voti[n-1][j] = voti[n-1][j] + voti[i][j];
    voti[n-1][j] = voti[n-1][j] / (n-1);
    }

    printf("\n\n\t\j VISUALIZZAZIONE DELLA MATRICE");
    for(i=0; i<n; i++)
    {
    printf("\n");
    for(j=0; j<m; j++)
    printf("%8.3f", voti[i][j]);

    }
    }
    [\QUOTE]
    c'è acnhe un errore nel primo commento... il commento va tra /*---------------*/
    Ultima modifica di Darkito; 14-09-2006 alle 14:14


    Max Pezzali Mania
    ---> http://www.maxpezzalimania.it

  3. #3
    Senior Member L'avatar di clank
    Data Registrazione
    Thu Dec 2004
    Località
    tuxland
    Messaggi
    348

    Predefinito

    poi c'&#232; scritto vot invece che voti e ora trovate gli errori di runtime, quelli sono difficilissimi

  4. #4
    A morte i camperoni! L'avatar di Darkito
    Data Registrazione
    Sat May 2006
    Località
    Catania
    Messaggi
    4,083

    Predefinito

    La condizione nel secondo for di inserimento dovrebbe essere j<m-1 o j<=m-2 e non j<m-2 perchè senno prendi soltanto i voti di tre prove e non di quattro
    Nel primo for la condizione deve essere i<n-1 perchè l'ultima posizione del vettore è riservata alle medie.
    E per l'inserimento dovremmo essere a posto. Ovvero il codice è
    #define n 4
    #define m 5
    float voti [n][m];
    main()
    {
    int i, j;
    printf("Caricamento dei voti\n\n");
    for(i=0; i<n-1; i++)
    for(j=0; j<m-1; j++)
    {
    printf("Ins. studente %d prova %d: ", i+1,j+1);
    scanf("%f",voti[i][j]);
    }
    Passiamo alla media x studente.Scrivo direttamente il codice poichè mi secco a commentare

    for(i=0; i<n-1; i++)
    {
    for(j = 0; j<m-1; j++)
    voti[i][m-1] += voti[i][j];
    voti[i][m-1] /= (m-1);

    }
    Passiamo alla media delle prove
    for(j=0; j<m-1;j++)
    {
    for(i=0; i<n-1; i++)
    voti[n-1][j]+= voti[i][j];
    voti[n-1][j]/=(n-1);
    }
    La routine di visualizzazione è corretta...


    Max Pezzali Mania
    ---> http://www.maxpezzalimania.it

  5. #5

  6. #6
    Senior Member L'avatar di clank
    Data Registrazione
    Thu Dec 2004
    Località
    tuxland
    Messaggi
    348

    Predefinito

    Citazione Originariamente Scritto da Derfel Visualizza Messaggio
    Guardali i miei ragazzi
    eh, devi ammettere che il tempo si ci perdeva, nn era come bere un bicchiere d'acqua

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •