Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2015
    Messaggi
    1

    [C] Segmentation fault in un semplice esercizio sulle matrici

    Volevo svolgere un semplice esercizio in C sulle matrici, che chiede di far inserire i voti di un elenco di studenti in una matrice e poi di calcolare la media per ogni studente.

    Per quanto riguarda la parte delle medie ecc il programma va bene,
    il problema sta nell'inserimento dei voti nella matrice(4X4),
    che in fase di scanf da un errore di segmentation fault al valore della matrice[1][2].

    codice:
    #include <stdlib.h>#include <stdio.h>
    
    
    int main()
    {
        int righe=4;
        int colonne=4;
        int voti[righe][colonne];
        int i, j, k=1;
        float somma=0;
        float medie[4];
        
        // Cerco di prendere i voti
        
        for (i=0;i<righe;i++){
            printf("inserire voti dello studente %d \n",i);
            for(j=0;j<colonne;j++){
                scanf("%d",voti[i][j]);
            }
        }
        
        // Faccio la media
        
        for (i=0;i<righe;i++){
            somma=0;
            for(j=0;j<colonne;j++){
            somma=somma+voti[i][j];
            medie[i]=somma/righe;
            }
        }
        
        //Stampo a video i risultati
        
        for (i=0;i<righe;i++){
            printf("Studente %d          ",i);
            for(j=0;j<colonne;j++){
                printf("%d ",voti[i][j]);
            }
            printf("\n");
        }
        
        
        for (i=0;i<righe;i++){
            printf("\nlo studente %d ha una media di ",i);
                printf("%f ",medie[i]);
                
        }
    }

    In realtà mi chiedo solo se io ho sbagliato l'algoritmo o è un qualche problemino del compilatore, perchè a me sembra fatto abbastanza bene....

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Leggi i warning!

    A scanf dovresti passare un puntatore: &voti[i][j]

    Inoltre sarebbe opportuno usare dei valori costanti per il numero di righe e colonne.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Se non ti è chiaro rivedi questa

    http://www.cplusplus.com/reference/cstdio/scanf/
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.