Errore sul compilatore gcc .

di il
9 risposte

Errore sul compilatore gcc .

Errore sul compilatore gcc.

Ecco cosa mi dice il compilatore :
ubuntu@xubuntu:~/Desktop$ cd /home/xubuntu/Desktop
xubuntu@xubuntu:~/Desktop$ gcc matri.c -o matri -lm
xubuntu@xubuntu:~/Desktop$ ./matri
Esercizio sulle matrici

Inserisci l'elemento a[1,1]: 1

Inserisci l'elemento a[1,2]: 2

Inserisci l'elemento a[2,1]: 3

Inserisci l'elemento a[2,2]: 4

Inserisci l'elemento a[3,1]: 5

Inserisci l'elemento a[3,2]: 6
2
Segmentation fault (core dumped)


Qui sotto c'è il filesorgente utilizzato :
#include<stdio.h>
#include<stdlib.h>
#define nr 4
#define nc 2

main()
{
int i,j,k1,k2;
float a[nr][nc];
printf("Esercizio sulle matrici\n");
for(i=1;i<=nr;i++) /* carico la matrice */
{for (j=1;j<=nc;j++)
{printf("\nInserisci l'elemento a[%d,%d]: ",i,j);
scanf("%f",&a[i][j]);
if (a[i][j]>=0)
{k1++;}
else
{k2++;}
}
}
printf("\n\nGli elementi della matrice>=0 sono: %d",k1);
printf("\n\nGli elementi della matrice <0 sono: %d",k2);
printf("\n\n");
getchar();}

9 Risposte

  • Re: Errore sul compilatore gcc .

    La prima cosa che salta all'occhio è l'errato utilizzo degli indici per accedere alla matrice ( ma anche ai vettori in generale); quindi in sostanza se tu avessi un vettore di questo tipo:
    int vett [5]={1,2,3,4,5};
    Per accedere all'i-esimo elemento dovresti scandire gli elementi in questo modo, poiché per il C la prima posizione è 0, quindi devi iterare da 0 a 4:
    for(i=0;i<5;i++)
    L'altro errore evidente è la mancata inizializzazione a 0 delle variabili k1 e k2 che utilizzi per contare il numero di elementi positivi e negativi.
  • Re: Errore sul compilatore gcc .

    Quindi devo inizializzare k1 e k2 e poi togliere il <= e mettere solo il < dai cicli for?
  • Re: Errore sul compilatore gcc .

    daniele90 ha scritto:


    Quindi devo inizializzare k1 e k2 e poi togliere il <= e mettere solo il < dai cicli for?
    Beh devi anche far partire gli indici da 0 e non da 1 e devi anche inizializzare k1 e k2, il motivo spero ti sia chiaro
  • Re: Errore sul compilatore gcc .

    Si si chiarissimo!
    Mi ha ingannato il fatto che su un compilatore IDE mi funzionava correttamente mentre su gcc no!
  • Re: Errore sul compilatore gcc .

    "un compilatore IDE"?

    Sono cose diverse ...
  • Re: Errore sul compilatore gcc .

    Intendo dire Dev c++.
    Forse si dice solo ide SENZA COMPILATORE.
  • Re: Errore sul compilatore gcc .

    intendo dire Dev c++.
    Quante volte ti dovrò ancora ripetere che quel ide è obsoleto e ti induce a compiere errori!
  • Re: Errore sul compilatore gcc .

    Lo uso solamente per una facile verifica di ciò che sto facendo.
    Comunque a parte pochissimi problemi , nella trascrizione del codice da dev c++ ad altri codici , come per esempio gcc non trovo moltissime difficoltà.
  • Re: Errore sul compilatore gcc .

    Lo uso solamente per una facile verifica di ciò che sto facendo.
    e come fai a verificare con un programma non funzionante correttamente?
    tantovale non utilizzarlo,azi è meglio non utilizzarlo.
Devi accedere o registrarti per scrivere nel forum
9 risposte