Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    verificare che un char di un elemento sia uguale a "si"

    Salve ragazzi,ho creato un programma che determini,dati un elenco,il massimo e il minimo dei numeri.
    Il ciclo è un do while che si ripete se una variabile char di un solo elemento contiene "s" o "S".
    Il problema è che mi da un errore,all'inserimento della risposta si controlla se la risposta è coerente con le possibilità di risposte,ovvero "s","S","n","N", altrimenti si ripete,ma da questo ciclo non esce mai,qualsiasi cosa si scrive,ecco il codice:

    codice:
    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    
    int main()
    {
     bool primo=1;
     float num,mx,mn;
     char risp;
     do{
     cout<<"inserisci numero: ";
     cin>>num;
     cout<<'\n';
     if (primo==1){
        mx=num;
        mn=num;
        primo=0;
     }
     else{
        if (mx<num)
        mx=num;
            if (mn>num)
            mn=num;
     }
    do{
     cout<<"vuoi inserire altri numeri? ";
     cin>>risp;
     cout<<'\n';
    }
    while ((risp!= 'S') || (risp != 'N'));
     }
     while (risp == 'S');
     cout<<"il massimo è: "<<mx<<'\n'<<"il minimo è: "<<mn<<'\n';
     system ("pause");
     return 0;
    }
    sbaglio qualcosa nel confronto?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Nel secondo while ci và il doppio uguale

  3. #3
    Originariamente inviato da Marco1995
    Nel secondo while ci và il doppio uguale
    Non è quello l'errore,me ne ero già accorto e lo avevo corretto,ma si ripete sempre lo stesso errore!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Pardon..quello era il primo errore che mi era saltato all'occhio...l'altro errore sta nel primo while dove va && al posto di || .
    Inoltre devi ricordarti di scrivere le lettere in Maiuscolo.Per completezza del programma potreti crearti una funzione che converte i caratteri in maiuscolo...oppure aggiungere brutalmente le condizioni delle lettere minuscole all'interno del while

  5. #5
    Originariamente inviato da Marco1995
    Pardon..quello era il primo errore che mi era saltato all'occhio...l'altro errore sta nel primo while dove va && al posto di || .
    Inoltre devi ricordarti di scrivere le lettere in Maiuscolo.Per completezza del programma potreti crearti una funzione che converte i caratteri in maiuscolo...oppure aggiungere brutalmente le condizioni delle lettere minuscole all'interno del while
    perfetto,come faccio la funzione per convertire i caratteri? cosa uso?

  6. #6
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Originariamente inviato da razielmitico
    perfetto,come faccio la funzione per convertire i caratteri? cosa uso?
    Per convertire i caratteri puoi sfruttare il codice ASCII (link alla tabella) e notare che vale la seguente uguaglianza:

    codice:
    codiceMinuscola = codiceMaiuscola + 32

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    250
    Per convertire i caratteri puoi sfruttare il codice ASCII (link alla tabella) e notare che vale la seguente uguaglianza:

    [CODE
    codiceMinuscola = codiceMaiuscola + 32
    [/CODE]
    Esattamente..mi hai preceduto

  8. #8
    Originariamente inviato da minomic
    Per convertire i caratteri puoi sfruttare il codice ASCII (link alla tabella) e notare che vale la seguente uguaglianza:

    codice:
    codiceMinuscola = codiceMaiuscola + 32
    al posto di codiceMinuscola/Maiuscola devo mettere il relativo codice in ascii?

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Per convertire i caratteri nel rispettivo minuscolo c'è già la funzione tolower della libreria cctype, che è anche meglio perché indipendente dalla codifica.
    (ovviamente parlando dei caratteri basilari, insomma quelli che di solito si trovano, per l'appunto, nella codifica ASCII)
    effeffe

  10. #10
    Originariamente inviato da Kaamos
    Per convertire i caratteri nel rispettivo minuscolo c'è già la funzione tolower della libreria cctype, che è anche meglio perché indipendente dalla codifica.
    (ovviamente parlando dei caratteri basilari, insomma quelli che di solito si trovano, per l'appunto, nella codifica ASCII)
    ho anche trovato il codice:

    codice:
    //Example reads in a character and makes up lowercase 
    #include <iostream>
    #include <cctype>
    
    using namespace std;
    
    int main()
    {
        char x;
        cin>>x;
        x=tolower(x);
        cout<<x;
    }
    ma funziona solo da maiuscolo e minuscolo,non c'è una funzione per l'effetto contrario da maiscuolo a minuscolo?

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.