Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    4

    [C] esercizio figure geometriche

    ciao ragazzi, sto imparando ora il linguaggio C...e ho già riscontrato alcuni problemi
    Stavo facendo un esercizio dove mi era richiesto di stampare a video una figura alternando una riga di + ed una riga di o... ecco un possibile esempio:
    dato input n, esempio n=5
    risultato:
    +++++
    ooooo
    +++++
    ooooo
    +++++
    (non riesco ad allinearli cmq sarebbe un quadrato a righe alternate)

    ecco il mio problema, io riesco a fare solo un quadrato di + non capisco come alternare le righe.
    Ecco il codice:

    #include <stdio.h>

    int main(void)
    {
    int i, j,x, n;

    printf("Inserisci un numero per la dimensione della figura da disegnare: ");
    scanf("%d", &n);

    printf("n = %d\n", n);

    for(i=0; i<n; i++){
    for(j=0; j<n ; j++){

    printf("+ ");

    }
    printf("\n");

    }


    return 0;
    }

    come devo fare?

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Controllli l'indice del ciclo esterno, se é dispari stampi un carattere, se é pari stampi l'altro.
    Per contrllare se é pari puoi controllare il resto di una divisione per 2, quindi:
    [CODE] printf("%c", (i % 2) ? '+' : 'o');
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    4

    Altro problema :(

    Ciao, grazie ancora per l'aiuto.
    Ahime ho un altro problema
    dovrei stampare una cosa del genere
    n=5
    |++++
    o|+++
    oo|++
    ooo|+
    oooo|

    ma col mio codice riesco a stampare qst:
    n = 5
    +++++|
    o++++|
    oo+++|
    ooo++|
    oooo+|

    ecco il codice

    #include <stdio.h>

    int main(void)
    {
    int i, j,x, n;

    printf("Inserisci un numero per la dimensione della figura da disegnare: ");
    scanf("%d", &n);

    printf(" n = %d\n", n);

    for(i=0; i<n ; i++){

    for(j=0; j<i ; j++){
    printf("o");

    }

    for(j=0; j<(n-i);j++){
    printf("+");

    }printf("|\n");
    }



    return 0;
    }

    dove sbaglio????
    Grazie nuovamente

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    for(i = n; i > 0; i--) {
      for(j = n - i; j >  0; j--)
        printf("o");
      printf("|"); 
      for(j = i; j > 0; j--)
        printf("+");
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    4

    Grazie!!!

    ciao, ho provato la tua soluzione ma non funziona, aggiungendo una condizione if al 3° for
    funziona tutto correttamente!!!
    grazie cmq di 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 © 2025 vBulletin Solutions, Inc. All rights reserved.