Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    24

    Un piccolo aiuto

    ciao a tutti, premetto che sono alle prime armi con la programmazione in C. Utilizzo Microsoft Visual c++ come piattaforma. Per iniziare ho messo in piedi un programmino che fa la somma di N addendi compresi in un range; tutto tranquillo, solamente che non riesco a far kiudere il programma esclusivamente premendo il tasto "n". Alla fine si tratta solamente di un piccolo miglioramento ma fino ad ora sono riuscito a far continuare il programma premendo il tasto "s" e a farlo terminare premendo un qualsiasi tasto al di fuori di "s". qualcuno sa darmi una mano?
    Il programma è questo:
    codice:
    #include <stdio.h>
    #include <conio.h>
    
    void main()
    {
    	
    	int N,i,somma,addendo;
    	char c;
    
    do
    	{
    	printf("Inserisci numero addendi compreso tra 2 e 10\n");
    	do
    	{
    		scanf("%d", &N);
    	}
    	while(N<2||N>10);
    	printf("Aggiungi addendi\n",N);
    i=0, somma=0;
    	do
    	{scanf("%d", &addendo);
    	i=i+1;
    		somma=somma+addendo;
    	}
    	while(i<N);
    	printf("La somma dei %d addendi vale = %d\n", N, somma);
    	printf("Vuoi rieseguire il programma? s/n\n");
    	}
    	while(c=getch() =='s');
    }

  2. #2
    dovresti aggiungere un if all'inizio del primo do while, se ho capito quello che vuoi fare, dovrebbe essere cosi:

    if (c=='n') return;// o break per uscire dal ciclo

    pero in questo caso devi modificare il ciclo while, che ti funzionerebbe al contrario...

    Cioè ti esce con la pressione di n, ma continua con qualisiasi tasto.

    Oppure stampi a video un messaggio di errore nel caso di pressione di tasti diversi usando un ciclo infinito ed una serie di if per ottenere i caratteri consentiti

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Una piccola occhiata al regolamento: il titolo deve riassumere il problema, questo è troppo vago.
    Il linguaggio va sempre specificato nel titolo della discussione.
    Il codice va postato dentro ai tag [ CODE ] per renderlo più leggibile.

    Correggo tutto io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    24
    grazie per la risp ma ho provato ad inserire la linea di comando ke mi hai detto ma non accade nulla(può anke darsi ke lo utilizzo in maniera sbagliata).....io vorrei che, una volta terminato il programma, questo venga terminato se io inserisco "n" mentre quando inserisco un altro carattere differente da "s" o "n" mi deve comparire nuovamente la scritta "Vuoi rieseguire il programma? s/n"......spero di essere stato più chiaro
    p.s.: per LeleFT.....grazie perl'avvertimento starò più attento!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scrivi

    while(c=getch() !='n');
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    ah, oh capito allora ti conviene fare così,

    trasforma il tuo primo ciclo in un ciclo infinito(poni la condizione del while come 1)
    alla fine al posto della printf con vuoi rieseguire il programma inserisci una cosa di questo tipo:
    codice:
    while(1){
    printf("Vuoi rieseguire il programma? s/n\n");
    if(c=getch() =='s') break;
    else if(c=='n') return;
    }
    Cosi dovrebbe andare se non ho sbagliato a scrivere il codice...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    24
    ok t ringrazio....stò cercando di modificarlo appena riesco a fare qualcosa t faccio sapere

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da dukefg
    ok t ringrazio....stò cercando di modificarlo appena riesco a fare qualcosa t faccio sapere
    Hai provato la mia riga?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    24
    si l'ho provata...ma quella riga mi fa continuare il programma se non premo "n" mentre se premo un qualsiasi altro tasto continua, interpretandoli come una "s"..

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    24
    per dunix87...scusami ma continua a segnalarmi errori, sicuramente sono io che inserisco le linee di comando in maniera errata perchè è la prima volta che sento parlare di "ciclo infinito","break" e "returne".....potresti farmi vedere come inserirli correttamente?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.