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

    [c]errore in stampa di un carattere

    Ciao..queste funzione del C fanno davvero pena...io eseguo una cosa cosi':
    int x;

    x=rand()%26 + 'a';
    printf(" Lettera:%c",x);


    mi serve x stampare a caso delle lettere..ma ogni volta me ne stampa due di seguito cioe cosi' "gg" avendo letto una sola "g".....oppure nn stampa niente!! Come faccio?

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da maninblack
    mi serve x stampare a caso delle lettere..ma ogni volta me ne stampa due di seguito cioe cosi' "gg" avendo letto una sola "g".....oppure nn stampa niente!! Come faccio?
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main() {
        int x;
    	srand(time(NULL));
    	x = 1 + rand() + 'a';
    	printf("Lettera: %c\n", x);
    
    	return 0;
    }
    Questo programma a me funzia, al posto di '1' metti il valore minimo che vuoi inserire e invece di + metti modulo(%).
    Inoltre devi inizializzare il seme di rand() con srand(valore).

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    scusa non ho capito bene...
    verrebbe fuori una cosa del genere:
    1%rand() + 'a';

    ma al posto dell'1 cosa devo mettere?
    io devo generare casualmente delle lettere comprese nell'alfabeto di 26 lettere..

  4. #4
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da maninblack
    scusa non ho capito bene...
    verrebbe fuori una cosa del genere:
    1%rand() + 'a';

    ma al posto dell'1 cosa devo mettere?
    io devo generare casualmente delle lettere comprese nell'alfabeto di 26 lettere..
    allora, rand() ritorna numeri da 0 fino a RAND_MAX(32767 di defalut), con una frequanza a campanile:

    codice:
    --
    -----
    -----------
    ---------------
    ----------
    ------
    ----
    circa quello è il risultato.

    Se tu vuoi partire dalla 'a' fino alla 'z', sapendo che 'a' corrisponde a 97 e 'z' a 97 + 25 quindi(122) dovresti fare:

    codice:
    ...
    int x = 97 + rand() % (122 + 1)
    ...
    bisogna aumentare di 1 il massimo xhè il resto tra x e y e sicuramente inferiore a y.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

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