Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] Ciclo while non funziona correttamente

    Il codice è il seguente:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]) {
        
        /*
        Ricevi in input da tastiera due valori e un carattere. I caratteri consentiti sono "+, -, *, /".
        Se il carattere è "+" somma i due numeri. Se è "-" sottraili. Se è "*" li moltiplica. Se è "/" dividili.
        Restituisci in output il risultato.
        */
        
        int n1;
        int n2;
        char carattere;
        float risultato;
        
        printf("Inserisci numero 1: ",n1);
        scanf("%d",&n1);
        while (n1<=0){
            printf("Numero 1 non valido. Inserisci un numero maggiore di 0: ");
            scanf("%d",&n1);
        }
        printf("Inserisci numero 2: ",n2);
        scanf("%d",&n2);
        while (n2<=0){
            printf("Numero 2 non valido. Inserisci un numero maggiore di 0: ");
            scanf("%d",&n2);
        }
        
        printf("Inserisci carattere: ");
        scanf(" %c",&carattere);
    
        while(carattere="+"){
            printf("Carattere non valido. Inserisci nuovo carattere: ");
            scanf(" %c",&carattere);
        }
        printf("Il carattere inserito non è '+'");
        
        system("PAUSE");
        return 0;
    }
    Funziona tutto tranne il ciclo while finale. Mi restituise sempre "carattere non valido" a prescindere che io inserisca come carattere "+" oppure "-"

    Come mai?
    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    == non = nella condizione.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2015
    Messaggi
    205
    Un piccolo consiglio,

    La prima parte, quella sui numeri va bene, ma per il resto ti consiglio di usare uno switch per fare i vari calcoli.
    Una cosa tipo

    "Inserisci il carattere"

    caso 1
    n1+n2

    caso2
    n1-n2

    caso3

    n1*n2

    caso4
    n1/n2

    default
    Hai inserito un carattere sbagliato
    Sito Modellismo (Non ancora completo)

  4. #4
    Grazie Scara95, appena posso provo e ti faccio sapere.

    WottaFacca non ho ben capito cosa intendi....potresti rispiegare? Grazie

  5. #5
    Quote Originariamente inviata da Scara95 Visualizza il messaggio
    == non = nella condizione.
    Ho provato come dici, ma mi restituisce in output come se la condizione fosse sempre falsa, ovvero salta le parentesi anche quando non dovrebbe.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma non hai errori in compilazione?


    Deve essere =='+' con i singoli apici non con le virgolette
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma non hai errori in compilazione?


    Deve essere =='+' con i singoli apici non con le virgolette

    Non avevo errori. Grazie mille, ora funziona tutto

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.