[C++] Znów te tablice...
Ostatnio zmodyfikowano 2010-04-30 21:28
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: #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.;) |
|
Pirotechnik |
» 2010-04-29 21:04:21 zbyt zagmatwałeś kod....(jeśli Ci chodzi o wyświetlanie liter parzystych i nieparzystych) |
|
szyx_yankez |
» 2010-04-29 21:35:22 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. 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.
|
|
madmike44 |
» 2010-04-29 21:53:10 Tak na szybko (bez jakichś dodatkowych warunków sprawdzających): #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 |
|
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. |
|
« 1 » |