Exe Crash!

di il
9 risposte

Exe Crash!

Sono nuovissima nella programmazione in C, quindi non sono ancora per niente pratica.
Ho fatto un programma semplicissimo, che stampa il prodotto due interi, per prendere confidenza col linguaggio.

Scrivo il programma (uso Dev-C++), compilo, eseguo.
Il problema è che scrivo il primo numero, premo Invio, e crasha!

Ho provato a fare una scanf di caratteri e questo problema non me lo dà.
Da cosa potrebbe dipendere?

Grazie!

9 Risposte

  • Re: Exe Crash!

    Una prima cosa da imparare ... i programmatori non sono veggenti o maghi.

    Se non mostri il codice che crea il problema nessuno ti potrà rispondere.
  • Re: Exe Crash!

    Mostra il codice.
    Per me ce qualche graffa mancante o errata
  • Re: Exe Crash!

    JunkieMan ... una graffa mancante genera un errore a "compile time".

    VIsto che l'errore è a "run time" ed è un crash, le parentesi non c'entrano nulla ma, molto probabilmente, è un cattivo uso di puntatori. Dato che puntatori non credo ne utilizzi tanti, mi concentrerei sulla scanf e sulla mancanza di & o simili ...
  • Re: Exe Crash!

    Ok! Grazie della dritta
  • Re: Exe Crash!

    Siccome avevo cancellato il programma, l'ho riscritto, ma stavolta non mi ha dato problemi!
    Probabilmente nell'altro sbagliavo qualcosa di cui non mi rendevo conto, e che ancora adesso mi è ignoto.

    Beh, meglio così, grazie lo stesso ragazzi!

    PS. se vi interessa, il codice ora funzionante è questo:

    Nota: ho messo quel while sulla x, solo per poter visualizzare il risultato (tanto era una cosa giusto per provare), visto che il prompt si chiude in un lampo!

    #include <stdio.h>

    main ()
    {
    int x;
    scanf ("%d", &x);

    while (x != 0) {

    int a;
    int b;
    printf ("Inserisci due numeri:\n");
    scanf ("%d%d", &a, &b);
    int p;
    p = a * b;
    printf ("Il prodotto vale %d\n", p);


    scanf ("%d", &x);

    }
    return 0;
    }
  • Re: Exe Crash!

    http://www.iprogrammatori.it/forum-programmazione/cplusplus/problema-compilatori-help-t23718.html#p8532424

    ...
  • Re: Exe Crash!

    A mio avviso ti sei un po' complicata la vita...innanzitutto non ho capito che dovrebbe fare la variabile x, poi il "while" è del tutto fuori luogo già che serve per eseguzioni di cicli (il while fa: " fare il ciclo fino a quando x!=0") e quindi se inserisci un valore a x che è <> a 0 il "ciclo" è infinito!!!
    Quello che penso che volevi fare te è che alla fine del prodotto ri-inserivi un nuovo valore di x per far stoppare o continuare il ciclo...programmando in linguaggio c puoi fare la medesima cosa mettendo prima dell'ultima graffa "return main()" che fa ripartire il programma.

    Ora il compilatore dev-c++ è un po' "noioso" su alcune cose, il tuo "return 0" a fine programma fa chiudere automaticamente il programma (infatti penso che quando lo avvii ti flasha in un secondo nemmeno la schermata nera).
    #include <stdio.h>
    int main () {
    	int a,b,p;
    	printf ("inserisci primo numero = ");
    	scanf ("%d",&a);
    	printf ("inserisci secondo numero = ");
    	scanf ("%d",&b);
    	p=a*b;
    	printf ("il prodotto tra i due numeri = %d\n",p);
    	return main();
    }
    


    se lo compili andrà sicuramente
    spero di esserti stato utile ciao.
  • Re: Exe Crash!

    Basta un semplice system("pause") o un getch() alla fine
  • Re: Exe Crash!

    Sì, infatti ho scritto che avevo messo il while solo per non fare chiudere il programma, siccome non sapevo come fare. Ora lo so, grazie mille!
Devi accedere o registrarti per scrivere nel forum
9 risposte