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

    Massimo e Minimo tra più caratteri (char)

    Ciao!
    Stò ragionando su questo programma da un pò e non riesco a capire come si possa risolvere!Voglio calcolare il carattere + grande e + piccolo in un insieme senza usare gli array!
    Mi sapreste dire dove sbaglio?
    Ecco ciò che ho provato a fare:
    #
    include <stdio.h>
    void main ()
    {
    char a, b, c, d, e, f, g, h, j, l, max,i,massimo;
    scanf("%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" , &a ,&b ,&c ,&d ,&e ,&f ,&g ,&h ,&j ,&l);

    massimo=0;
    for(i=0;i<=9;i++)
    {
    if (i> massimo)
    {
    massimo=max;
    }
    }
    printf("Il massimo e' %c\n", max);
    }

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Ciao, dato che sei nuovo ti segnalo il Regolamento, da leggere per conoscere tutte le norme in modo da partecipare correttamente a quest'area del forum.

    Non dimenticarti il linguaggio nel titolo. Questa discussione l'ho corretta io.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    char max[10]={scanf("%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" , &a ,&b ,&c ,&d ,&e ,&f ,&g ,&h ,&j ,&l)};
    mai visto una cosa così

    io farei così
    codice:
    char max[10];
    scanf("%c %c %c %c %c %c %c %c %c %c", &max[0], &max[1], &max[2], &max[3], &max[4],
        &max[5], &max[6], &max[7], &max[8], &max[9]);
    int actual = -1, i;
    for (i=0; i<10; i++) {
      if (max[i] > actual)
        actual = max[i];
    }

  4. #4

    Re: Massimo e Minimo tra più caratteri (char)

    Originariamente inviato da parthenope
    senza usare gli array!

  5. #5

    Re: Massimo e Minimo tra più caratteri (char)

    Originariamente inviato da parthenope
    Ciao!
    Stò ragionando su questo programma da un pò e non riesco a capire come si possa risolvere!Voglio calcolare il carattere + grande e + piccolo in un insieme senza usare gli array!
    Mi sapreste dire dove sbaglio?
    ...
    Lo sbaglio è nel cercare di complicarsi la vita...

    Cos' hai contro gli array ?
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  6. #6

    Re: Re: Massimo e Minimo tra più caratteri (char)

    che vorrei capire come svolgerlo senza, cioè, so farlo con due numeri o due caratteri, e mi chiedevo se era possibile estendere il calcolo a più di due numeri usando lo stesso codice senza utilizzare un array

  7. #7

    Re: Re: Re: Massimo e Minimo tra più caratteri (char)

    Originariamente inviato da parthenope
    che vorrei capire come svolgerlo senza, cioè, so farlo con due numeri o due caratteri, e mi chiedevo se era possibile estendere il calcolo a più di due numeri usando lo stesso codice senza utilizzare un array
    Probabilmente con una lunga serie di controlli :
    codice:
       if( a>max ) max=a;
       if( a<min ) min=a;
       if( b>max ) max=b;
       if( b<min ) min=b;
       if( c>max ) max=c;
       if( c<min ) min=c;
    ...
    E così via per tutte le variabili.
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  8. #8
    Grazie mille... ora il massimo mi appare, ma il minimo no

    #include <stdio.h>
    void main ()
    {
    char a, b, c, d, e, f, g, h, j, l, i,massimo, minimo;
    printf("Inserisci una parola di 10 lettere\n");
    scanf("%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" "%c" , &a ,&b ,&c ,&d ,&e ,&f ,&g ,&h ,&j ,&l);

    massimo=0;
    minimo=0;

    for(i=0;i<=9;i++)

    {
    if (a> massimo)
    {
    massimo=a;
    }
    if (b>massimo)
    {
    massimo =b;
    }
    if (c>massimo)
    {
    massimo=c;
    }
    if (d>massimo)
    {
    massimo = d;
    }
    if (e>massimo)
    {
    massimo = e;
    }
    if (f>massimo)
    {
    massimo =f;
    }
    if (g>massimo)
    {
    massimo = g;
    }
    if (h>massimo)
    {
    massimo = h;
    }
    if (j>massimo)
    {
    massimo = j;
    }
    if (l>massimo)
    {
    massimo = l;
    }

    if (a<minimo)
    {
    minimo=a;
    }
    if (b<minimo)
    {
    minimo =b;
    }
    if (c<minimo)
    {
    minimo=c;
    }
    if (d<minimo)
    {
    minimo = d;
    }
    if (e<minimo)
    {
    minimo = e;
    }
    if (f<minimo)
    {
    minimo =f;
    }
    if (g<minimo)
    {
    minimo = g;
    }
    if (h<minimo)
    {
    minimo = h;
    }
    if (j<minimo)
    {
    minimo = j;
    }
    if (l<minimo)
    {
    minimo = l;

    }
    }
    printf("Il massimo e' %c\n", massimo);
    printf("Il minimo e' %c\n", minimo);
    printf("La parola era %c %c %c %c %c %c %c %c %c %c\n" , a ,b ,c ,d ,e ,f ,g ,h ,j ,l);
    }

    forse l'errore è quel minimo=0, i caratteri potrebbero essere intesi dal programma come valori maggiori di 0 e quindi non trova un elemento minimo... o no?

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Mi sembra ovvio che il minimo non sia calcolato ...

    Se parti con un minimo a zero ...

  10. #10
    Originariamente inviato da parthenope
    ...

    forse l'errore è quel minimo=0, i caratteri potrebbero essere intesi dal programma come valori maggiori di 0 e quindi non trova un elemento minimo... o no?
    Esatto !
    Infatti nessun carattere ascii alfanumerico è inferiore a 0.
    Dovresti inizializzare le variabili così:

    codice:
    	char massimo=0, minimo=127;
    Nota : 127 è il valore massimo memorizzabile in una variabile signed char.
    Per lo stesso motivo se tu inserissi ad esempio "Samuelesam"
    il valore minimo sarà la
    'S'(codice ascii 83)
    e non la
    'a'(codice ascii 97)
    A meno che tu non provveda ad eguagliare il 'case' di ogni
    carattere prima del controllo.

    Quel ciclo for, invece, non serve proprio a niente ...
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

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.