Termine improvviso di un programma in C

di Anonimizzato22121 il
4 risposte
Salve,
richiedo gentilmente un aiuto per la scrittura di un programma in grado di visualizzare o modificare il contenuto di 3 variabili.

#include <stdio.h>

int main()
{
	int prod1 = 1001;
	int prod2 = 1002;
	int prod3 = 2001;
	int selezMenu;
	int selezModif;
	printf("[1] Visualizza codice prodotti\n");
	printf("[2] Modifica codice prodotti\n");
	printf("[3] Esci\n");
	printf("Selezione:  ");
	scanf("&d", &selezMenu);

	if (selezMenu == 1) {
		printf("prod1 = ", prod1);
		printf("prod2 = ", prod2);
		printf("prod3 = ", prod3);
	} else if (selezMenu == 2) {
		printf("Seleziona prodotto da modificare\n");
		scanf("%d", &selezModif);
		if (selezModif == 1) {
				printf("prod1 = ");
				scanf("%d", &prod1);
		} else if (selezModif == 2) {
				printf("prod2 = ");
				scanf("%d", &prod2);
		} else if (selezModif == 3) {
				printf("prod3 = ");
				scanf("%d", &prod3);
		}
	}	
return 0;
}
Quando il programma viene eseguito, e seleziono le voci del menu (selezMenu), il programma termina. Da cosa è provocato ciò?
Grazie mille in anticipo per chiunque mi voglia aiutare,
Phreaker.

4 Risposte

  • Non ho letto tutto, però questa riga...

    scanf("&d", &selezMenu);

    ...dovrebbe essere...

    scanf("%d", &selezMenu);
  • Questa è sbagliata

    scanf("&d", &selezMenu);

    in quanto hai scritto &d

    e in queste

    printf("prod1 =", prod1);
    printf("prod2 =", prod2);
    printf("prod3 =", prod3);

    mancano i %d
  • Grazie mille, di queste sviste non me ne ero proprio reso conto.
  • Non so con quale compilatore lavori ma Visual C++ rileva subito tutti i problemi ... basta leggere.
Devi accedere o registrarti per scrivere nel forum
4 risposte