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

[C++] Znów te tablice...

Ostatnio zmodyfikowano 2010-04-30 21:28
Autor Wiadomość
TheLukon
Temat założony przez niniejszego użytkownika
[C++] Znów te tablice...
» 2010-04-29 20:47:03
Zacznę jak zwyklę od kodu:

C/C++
#include <iostream>

using namespace std;

char wyraz[] = { "zarazcieskopiujedodwochtablic" };
char zdanie_parzyste[ 30 ];
char zdanie_nieparzyste[ 30 ];

void kopiowanie( char cel_parzysta[], char cel_nieparzysta[], char zrodlo[] );

int main()
{
   
   
    kopiowanie( zdanie_parzyste, zdanie_nieparzyste, wyraz );
   
    for( int i = 0; i < 20; i++ )
    {
        cout << "nieparzysta: " << zdanie_nieparzyste[ i ] << endl;
    }
    for( int i = 0; i < 20; i++ )
    {
        cout << "parzysta: " << zdanie_parzyste[ i ] << endl;
    }
   
    system( "pause" );
    return 0;
}
//****************************************************************
void kopiowanie( char cel_parzysta[], char cel_nieparzysta[], char zrodlo[] )
{
    for( int i = 0;; i++ )
    {
        if( i % 2 == 1 )
             cel_nieparzysta[ i ] = zrodlo[ i ];
        else
             cel_parzysta[ i ] = zrodlo[ i ];
       
        if( cel_parzysta[ i ] == 0 || cel_nieparzysta[ i ] == 0 ) break;
       
    }
}

Progam nie chce ogólnie wykonać tego co ja chcę. Proszę o nakierowanie na błąd,a nie o gotowe rozwiązanie.;)
P-16455
Pirotechnik
» 2010-04-29 21:04:21
zbyt zagmatwałeś kod....(jeśli Ci chodzi o wyświetlanie liter parzystych i nieparzystych)
P-16456
szyx_yankez
» 2010-04-29 21:35:22
C/C++
for( int i = 0; a warunek to kot za Ciebie napisze ?; i++ )
{
A tak wogóle co chcesz przez to osiągnąć? Jeżeli chcesz sprawdzać czy zdanie ma parzystą ilośc znaków to skorzystaj z funkcij strlen.
C/C++
bool aa( char wyraz[] )
{
    if( strlen( wyraz[] ) )
         return true else return false;
   
}
Chociarz zapewne chodzi Ci oto co napisa ł poprzednik ale strlen Ci nie zginie, zawsze si ę przydaje.
P-16457
madmike44
» 2010-04-29 21:53:10
Tak na szybko (bez jakichś dodatkowych warunków sprawdzających):

C/C++
#include <iostream>

using namespace std;

char wyraz[] = { "zarazcieskopiujedodwochtablic" };
char zdanie_parzyste[ 30 ];
char zdanie_nieparzyste[ 30 ];

void kopiowanie( char cel_parzysta[], char cel_nieparzysta[], char zrodlo[] );

int main()
{
   
   
    kopiowanie( zdanie_parzyste, zdanie_nieparzyste, wyraz );
   
    for( int i = 0; i < 30; i++ )
    {
        cout << "nieparzysta: " << zdanie_nieparzyste[ i ] << endl;
    }
    for( int i = 0; i < 30; i++ )
    {
        cout << "parzysta: " << zdanie_parzyste[ i ] << endl;
    }
   
    system( "pause" );
    return 0;
}
//****************************************************************
void kopiowanie( char cel_parzysta[], char cel_nieparzysta[], char zrodlo[] )
{
    int i = 0, j = 0, k = 0;
   
    while( zrodlo[ i ] != '\0' )
    {
        if( i % 2 == 1 )
        {
            cel_nieparzysta[ j ] = zrodlo[ i ];
            j++;
        }
        else
        {
            cel_parzysta[ k ] = zrodlo[ i ];
            k++;
        }
       
        i++;
    }
}

Pewnie o to Ci chodziło :)

P.S. Rozumiem, że tutaj chcesz pewnie poćwiczyć operacje na tablicach, ale do zabawy z ciągami znaków polecam klasę "string" :P
P-16458
TheLukon
Temat założony przez niniejszego użytkownika
» 2010-04-30 21:28:38
Dzięki wszystkim za pomoc.:)
@madmike44: Tak masz rację, własnie trenuję tablice.

Temat zamykam.
P-16468
« 1 »
  Strona 1 z 1