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

Choinka, pętla while

Ostatnio zmodyfikowano 2015-11-17 12:12
Autor Wiadomość
przemekkk
Temat założony przez niniejszego użytkownika
Choinka, pętla while
» 2015-11-16 19:57:13
Witam zrobiłem taki program w języku C za pomocą pętli for, ale teraz mam taki sam program zrobić używając pętli while. Nie mogę sobie z tym poradzić. Czy ktoś może mi pomóc?

C/C++
int main()
{
    int i, j, a;
    printf( "podaj wysokosc drzewka \n" );
    scanf( "%d", & a );
   
    for( i = 0; i < a; i++ )
    {
        printf( "%*c", a - i, ' ' );
        for( j = 0; j <= i; j++ )
             printf( " *" );
       
        putchar( '\n' );
    }
   
    printf( "%*c*\n", a + 1, ' ' );
    getchar();
    getchar();
    return 0;
}
P-140233
carlosmay
» 2015-11-16 22:14:35
C/C++
for( i = 0; i < a; i++ )
{ }
// ...

i = 0;
while( i < a ) {
    // tutaj kod
    i++;
}
 
P-140244
przemekkk
Temat założony przez niniejszego użytkownika
» 2015-11-16 22:43:37
A co mam zrobić z drugim for'em?
P-140249
michal11
» 2015-11-16 22:50:58
Ja bym zrobił analogicznie, tylko i zamienił na j z przykładu carlosmay.
P-140250
przemekkk
Temat założony przez niniejszego użytkownika
» 2015-11-17 09:23:35
C/C++
int main()
{
    int i, j, a;
    printf( "podaj wysokosc drzewka \n" );
    scanf( "%d", & a );
    i = 0;
    j = 0;
    while( i < a )
    {
        printf( "%*c", a - i, ' ' );
        i++;
    }
    while( j <= i );
   
    {
        printf( " *" );
        putchar( '\n' );
        j++;
    }
    printf( "%*c*\n", a + 1, ' ' );
    getchar();
    getchar();
    return 0;
}
zrobiłem tak, ale teraz nic nie wyświetla w programie.
P-140267
carlosmay
» 2015-11-17 11:08:20
W twoim przykładzie pętle 'for' są zagnieżdżone, a pętle 'while' następują jedna po drugiej (mają też być zagnieżdżone).
P-140274
przemekkk
Temat założony przez niniejszego użytkownika
» 2015-11-17 11:37:27
C/C++
int main()
{
    int i, j, a;
    printf( "podaj wysokosc drzewka \n" );
    scanf( "%d", & a );
    i = 0;
    j = 0;
    while( i < a )
    {
        printf( "%*c", a - i, ' ' );
        while( j <= i )
             printf( " *" );
       
        putchar( '\n' );
        i++;
        j++;
    }
   
    printf( "%*c*\n", a + 1, ' ' );
    getchar();
    getchar();
    return 0;
}

Nie wiem czy dobrze zrozumiałem, ale zrobiłem coś takiego. Po włączeniu programu * ciągle się pojawiają.
P-140276
carlosmay
» 2015-11-17 11:42:37
Prawie. Zmienna 'j' powinna być zerowana przed każdym uruchomieniem wewnętrznej pętli,
a inkremantacja zmiennej 'j' powinna odbywać się w pętli wewnętrznej.
P-140278
« 1 » 2
  Strona 1 z 2 Następna strona