Problema con ciclo do-while

di il
4 risposte

Problema con ciclo do-while

Salve, riconosco che questo è un esercizio molto semplice ma non riesco proprio a capire perchè inserendo n>8 il programma si interrompe inserendo il nono elemento dell'array non restituendo niente.

Vi prego di essere buoni visto che è uno dei miei primi esercizi e di darmi anche qualche consiglio, ad esempio per inizializzare il minimo visto che non ho trovato altre soluzioni.
#include<stdio.h>

int main()
{
	int n, array[n], i=2, cont=1, minimo;

	printf("Inserisci quanti spazi nell'array.\n");
	scanf("%d", &n);
	
	printf("\nInserisci i valori in sequenza\n---> ");
	scanf("%d", &array[1]);
	
	minimo=array[1];
	
	do{
		printf("\nInserisci i valori in sequenza\n---> ");
		scanf("%d", &array[i]);
		
		if(array[i]<minimo)
		{
			minimo=array[i];
		}
		
		i++;
		cont++;
	}while(cont<n);
	
	printf("\nL'array e' completo.\n\n");
	printf("Il minimo e' %d", minimo);
}
Grazie in anticipo, buonanottee

4 Risposte

  • Re: Problema con ciclo do-while

    Il grave errore iniziale sta in

    int n, array[n]

    in cui la variabile n non contiene ancira valori validi e la usi per dimensionare il vettore.
  • Re: Problema con ciclo do-while

    Insomma dovrei dare un valore iniziale a n? Ad esempio 0?
  • Re: Problema con ciclo do-while

    L'array lo devi dichiarare dopo aver acquisito n
  • Re: Problema con ciclo do-while

    pedex ha scritto:


    Insomma dovrei dare un valore iniziale a n? Ad esempio 0?
    Prima esegui la scanf e poi usi n per il dimensionamento dell'array.

    E poi sarebbe meglio utilizzare un ciclo for ed iniziare da 0 non da 1
Devi accedere o registrarti per scrivere nel forum
4 risposte