Linguaggio c

Messaggioda Mikii02 » 25/11/2021, 20:07

Ciao a tutti, sto riscontrando problemi ad eseguire questo programma in linguaggio c: quando cerco di eseguirlo mi esce scritto "Segmentation fault (core dumped)". Dove è il problema? Grazie in anticipo a chi mi aiuterà.

Il programma è questo:
Scrivere un programma che dato un vettore verifichi che esista almeno un numero doppio del precedente.
Codice:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
 //Dichiarazione di un array di 100 interi
 const int maxDim = 100;
 int v[maxDim];
 int dimensione;
 int index;
 int doppio;
 //Inserimento della dimensione dell'array
 printf("Inserisci la dimensione dell'array (max %d): ", maxDim);
 scanf("%d", &dimensione);
 //Controllo di allocazione statica
 if ((dimensione > 0) && (dimensione <= maxDim)) {
   //Lettura dell'array
   for(index = 0; index < dimensione; index++){
   printf("Inserisci il valore %d-esimo: ", index);
   scanf("%d", &v[index]);
   }
 
   //Inizio ricerca
   v[doppio] = 0;
   while((index < dimensione) && (v[doppio] == 0)) {
     if (v[doppio] == 2*v[index-1]){
     v[doppio] = 1;
     }
   index++;
   }
   
   //Stampa
   if(v[doppio]==1) {
   printf("L'elemento doppio del precedente e'%d", doppio);
   } else {
   printf("Errore: la dimensione inserita e' maggiore di %d", maxDim);
   }
 }
 return 0;
}
Mikii02
Starting Member
Starting Member
 
Messaggio: 3 di 26
Iscritto il: 05/11/2021, 20:43

Re: Linguaggio c

Messaggioda apatriarca » 25/11/2021, 20:43

Così ad una prima occhiata non hai inizializzato doppio prima di utilizzarlo e non hai azzerato index prima di fare un secondo ciclo lungo il tuo array. Non mi è poi chiaro perché all'interno del secondo ciclo accedi a index-1 invece che a index.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5634 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Linguaggio c

Messaggioda Mikii02 » 25/11/2021, 21:53

Grazie per avermi aiutata a risolvere il problema. Comunque ho messo index-1 per intendere il precedente.
Mikii02
Starting Member
Starting Member
 
Messaggio: 4 di 26
Iscritto il: 05/11/2021, 20:43


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite