Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wzorki, pętle zagnieżdżone

Ostatnio zmodyfikowano 2017-11-22 17:57
Autor Wiadomość
Bercik97
Temat założony przez niniejszego użytkownika
Wzorki, pętle zagnieżdżone
» 2017-11-22 15:39:52
Mam napisać taki wzorek, ktoś wie co trzeba zrobić w tym kodzie żeby był taki wzorek?
A
BC
DEF
GHIJ
KLMNO
PQRSTU
Zmieniałem ten kod na różne sposoby, robiłem to na kartce iteracja po iteracji i nie rozumiem dlaczego mi nie wyświetla tego poprawnie, proszę o pomoc
C/C++
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char litery[ 27 ] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i, j;
   
    for( i = 0; i <= 20; i++ )
    {
        for( j = 0; j <= i; j++ )
             printf( "%c", litery[ j ] ++ );
       
        printf( "\n" );
    }
   
    getch();
   
    return 0;
}
edit: Myślałem może że jakoś to z 'if' zrobić ale jaki wtedy warunek
P-167088
carlosmay
» 2017-11-22 16:34:12
Nie masz tyle znaków w tablicy, żeby iterować w pierwszej petli dwadzieścia razy.

Zacznij iterowanie obu pętli od 1.

Nie potrzebujesz tablicy, bo wystarczy inkrementować wartość zmiennej przedstawiającej kod z tabeli ASCII.
P-167089
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-11-22 16:38:13
Wiem że nie potrzebuje tablicy i mogę to zrobić z tablicy ascii ale to nic nie zmienia, dalej wyświetla mi tak samo.
P-167090
carlosmay
» 2017-11-22 16:46:56
Próbowałeś iterować w pętlach od 1?
Przydałoby się zabezpieczyć przed czytaniem znaków spoza tablicy.
No i
printf( "%c", litery[ k++ ] );
 plus definicja zmiennej k przed pętla z wartością 0;

https://ideone.com/HTLZ1v
P-167091
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-11-22 16:59:54
Działa :) Tylko nie rozumiem co ta zmienna k robi, da się jakoś ten kod zwięźlej/ładniej napisać?
C/C++
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char litery[ 27 ] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int i, j, k = 0;
   
    for( i = 0; i <= 20; i++ )
    {
        for( j = 0; j <= i; j++ )
             printf( "%c", litery[ k++ ] );
       
        if( litery[ k ] == 'V' )
        {
            printf( "\n" );
            system( "PAUSE" );
            exit( 0 );
        }
        printf( "\n" );
    }
   
    return 0;
}

edit: Dobra już ogarnąłem co ta zmienna k ma robić :) takie proste a nie wpadłem na to
P-167092
Bercik97
Temat założony przez niniejszego użytkownika
» 2017-11-22 17:03:19
Ps. jak zaczynam iteracje od 1 a nie od 0, to program zaczyna mi od litery 'B', więc jest dobrze gdy zaczynam iteracje od 0 bo wtedy wypisuje mi na początku 'A'
P-167093
carlosmay
» 2017-11-22 17:30:32
Nie chodzi o zmienną k tylko o liczniki pętli. W sumie to nie ma znaczenia. Zmyliłem się <=. Rzadko stosuję.
P-167094
nanoant20
» 2017-11-22 17:45:41
Off-topic

@Bercik97 na forum "Pozostałe tematy" pod tematem "konfiguracja Code::Blocks'a pod Windows" znajdziesz rozwiązanie dlaczego funkcja pow() Ci nie działała. Umieściłem to ponieważ zamknołeś temat "Suma kwadratów kolejnych liczb C" i nie miałem jak napisać.
P-167095
« 1 » 2
  Strona 1 z 2 Następna strona