Visualizzazione dei risultati da 1 a 2 su 2

Discussione: do while funziona?

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505

    come faccio a capire se il ciclo do while funziona

    #include<stdio.h>
    main() {

    int a,b;
    a=0;
    do
    {
    printf("\nInserisci un numero");
    scanf("%d",&b);
    a +=b;
    printf("%d",a);
    }
    while(b);
    }
    Il seguente listato da quanto ho imparato dovrebbe farmi eseguire l'immissione del numero anche nel caso b sia nullo.
    Se metto i numeri funziona tutto perfettamente ma come faccio a verificare che se b è nullo il programma finisce?
    ho messo uno spazio vuoto ma inizia a contare in maniera infinita
    grazie
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    #include<stdio.h>
    main() {

    int a,b;
    a=0;
    do
    {
    printf("\nInserisci un numero");
    scanf("%d",&b);
    a +=b;
    printf("%d",a);
    }
    while(b);
    }
    1)se b==0 la lettura si interrompe,e il programma termina
    2)con 2 istruzioni in piu' puoi verificarlo
    #include<stdio.h>
    main() {

    int a,b;
    a=0;
    do
    {
    printf("\nInserisci un numero");
    scanf("%d",&b);
    a +=b;
    printf("%d",a);
    }
    while(b);
    /*aggiunto*/
    if(!b)/*se b==0*/
    {
    printf("Lettura terminata b=[%d]\n",b);
    system("pause");
    }
    else
    printf("Errore nel ciclo do..while\n");
    }

    3)Se immetti 1 qualunque carattere che non sia 1 numero
    il ciclo diventa 1 ciclo infinito,il motivo di cio'
    richiederebbe una conoscenza approfondita dell' InputOutput
    di 1 programma C,io ti consegno la soluzione migliore
    possibile,ma non c'è spazio per spiegarti il motivo
    di tale scelta
    #include <stdio.h>
    #include <stdlib.h>/*chiamata a system()*/
    void Svuota_Buffer(void);/*svuota il buffer di tastiera*/
    int main(void) {
    int a,b;
    int flag;/*variabile di controllo*/
    a=0;
    do
    {
    printf("\nInserisci un numero");
    flag=scanf("%d",&b);
    /*evita il ciclo infinito*/
    if(!flag)
    Svuota_Buffer();
    else
    {
    a +=b;
    printf("%d",a);
    }
    while(b);
    /*aggiunto*/
    if(!b)/*se b==0*/
    {
    printf("Lettura terminata b=[%d]\n",b);
    system("pause");
    }
    else
    printf("Errore nel ciclo do..while\n");
    return 0;
    }
    void Svuota_Buffer(void)
    {
    char car;
    scanf("%c",&car);
    while((car!='\n')&&(scanf("%c",&car))
    ;
    return;
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.