PROBLEMA SEMPLICE PROGRAMMA IN C

di il
7 risposte

PROBLEMA SEMPLICE PROGRAMMA IN C

Ciao tutti sto avendo difficoltà con questo problema relativamente semplice, credo che l'errore sia nello specificare le variabili (sto muovendo i primi passi da solo ).
vi lascio di seguito il testo piula mia risoluzione:
Si scriva un programma C che:
a. definisca due variabili di tipo carattere;
b. ne acquisisca il contenuto da tastiera;
c. stabilisca se i caratteri sono entrambi alfabetici:
i. in caso positivo, controlli se sono uguali e, se non lo sono, stampi i due
caratteri in ordine alfabetico;
ii. in caso negativo, specifichi tramite messaggio se almeno uno dei caratteri è
una cifra.




#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>


int main()
{
char carattere1;
char carattere2;

printf("inserisci il primo carattere:");
scanf("%c",&carattere1);

printf("inserisci il secondo carattere:");
scanf("%c",&carattere2);

if (isalpha(carattere1) && isalpha(carattere2)){
if (carattere1!=carattere2){
if(carattere1>carattere2){
printf("%c,%c",carattere2,carattere1);
}else {
printf("%c,%c",carattere1,carattere2);
}
}
} else {
if (isdigit(carattere1) || isdigit(carattere2)){
printf("uno dei due caratteri e' un numero");
}

}

return 0;
}

7 Risposte

  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Usa i tag code per il codice e un titolo più adeguato. Leggi il regolamento.

    E dicci anche cosa non va nel tuo codice perché non l'hai detto.
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Grazie dei chiarimenti, questo è la mia prima volta che uso il sito.
    Quando faccio svolgere il programma mi chiede solo il primo carattere, nel momento in cui chiede il secondo non me lo fa digitare e termina il programma.
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Sei sicuro di star digitando un carattere? Nel momento in cui il tipo dell'input differisce dal tipo definito (nel tuo caso char), il programma termina perché viene rilevato un errore. Prova ad aggiungere un controllo sull'input in modo tale da evitare (o farti restituire) l'errore. Trovi svariati esempi nel forum.
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Grazie della risposta, per quanto riguarda il mio problema sono sicuro di stare inserendo caratteri.
    Adesso provo a seguire il tuo consiglio e a dare un occhiata su altri esempi presenti nel Forum
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Così funziona perfettamente. Devi creare una variabile appoggio che ti accolga il carattere di invio!
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    
    int main()
    {
    char carattere1;
    char carattere2;
    char appoggio;
    
    printf("inserisci il primo carattere:");
    scanf("%c",&carattere1);
    scanf("%c",&appoggio);
    
    printf("inserisci il secondo carattere:");
    scanf("%c",&carattere2);
    scanf("%c",&appoggio);
    
    if (isalpha(carattere1) && isalpha(carattere2)){
    if (carattere1!=carattere2){
    if(carattere1>carattere2){
    printf("%c,%c",carattere2,carattere1);
    }else {
    printf("%c,%c",carattere1,carattere2);
    }
    }
    } else {
    if (isdigit(carattere1) || isdigit(carattere2)){
    printf("uno dei due caratteri e' un numero");
    }
    
    }
    
    return 0;
    }
    Piccolo consiglio: mettici sempre dei printf nelle varie parti del programma così se hai problemi è più facile individuarli!
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Ti consiglio solamente di aggiungere uno spazio nelle scanf dopo le prime virgolette per risolvere

    scanf(" %c",&carattere1);

    scanf(" %c",&carattere2);
  • Re: PROBLEMA SEMPLICE PROGRAMMA IN C

    Grazie mille a tutti e due, siete stati gentilissimi.
    A quanto pare ho ancora dei dubbi sul funzionamento dello scanf con il %c..
Devi accedere o registrarti per scrivere nel forum
7 risposte