Dynamiczne tablice przekazywane do funkcji.
Ostatnio zmodyfikowano 2013-01-13 19:59
cryuff Temat założony przez niniejszego użytkownika |
» 2013-01-13 13:56:03
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <stdlib.h>
using namespace std;
void menu(); void sort1( int, string ); int zliczenie( string );
int main() { int i = 0; int a; string sciezka; cout << "Podaj sciezke do pliku .txt (pamietaj o uzyciu podwojnych backshlash'y)" << endl; cin >> sciezka; cout << endl; string * tab; tab = new string[ zliczenie( sciezka ) ]; a = zliczenie( sciezka ); ifstream plik; plik.open( sciezka.c_str(), ios::in | ios::out ); if( plik ) { string linia; while( !plik.eof() ) { plik >> linia; cout << linia << endl; tab[ i ] = linia; i++; } } else { cout << "Blad. Nie mozna odczytac pliku." << endl; } sort1( a, tab ); system( "PAUSE" ); return 0; }
void menu() { cout << "Wybierz jedna z funkcji programu:" << endl; cout << "Wpisz 1, aby pogrupowac wyrazy od A do Z przy pomocy pierwszego algorytmu" << endl; cout << "Wpisz 2, aby pogrupowac wyrazy od A do Z przy pomocy drugiego algorymty" << endl; cout << "Wpisz 3, aby pogrupowac wyrazy od Z do A przy pomocy pierwszego algorytmu" << endl; cout << "Wpisz 4, aby pogrupowac wyrazy od Z do A przy pomocy drugiego algorytmu" << endl; cout << "Wpisz 5, aby odnalezc najdluzszy wyraz" << endl; cout << "Wpisz 6, aby odnalezc najkrotszy wyraz" << endl; cout << "Wpisz 7, aby dopisac wyraz" << endl; cout << "Wpisz 8, aby wykasowac wyraz" << endl; cout << "Wpisz 9, aby zapisac wyniki do pliku" << endl; }
int zliczenie( string link ) { int licznik = 0; string slowo; ifstream pliczek; pliczek.open( link.c_str() ); while( pliczek >> slowo ) licznik++; return licznik; pliczek.close(); }
void sort1( int k, string * tabs[] ) { string temp; for( int i = 0; i < k; i++ ) { if( tabs[ i ] > tabs[ i + 1 ] ) { tabs[ i ] = temp; tabs[ i ] = tabs[ i + 1 ]; tabs[ i + 1 ] = temp; } } for( int j = 0; j < k; j++ ) cout << tabs[ j ] << endl; }
|
|
jsc |
» 2013-01-13 15:05:57 void sort1( int k, string tabs[] ), działa, ale musisz poprawić deklarację i definicję jednocześnie. |
|
cryuff Temat założony przez niniejszego użytkownika |
» 2013-01-13 19:59:15 Zrobiłem już 3 algorytmy sortowania mam tylko problem z przekształceniem tego na sortowanie od Z do A: string sort2za( int k, string tabs[] ) { int i, j; string temp; for( j = k - 2; j >= 0; j-- ) { temp = tabs[ j ]; i = j + 1; while(( i <= k - 1 ) &&( temp > tabs[ i ] ) ) { tabs[ i - 1 ] = tabs[ i ]; i++; } tabs[ i - 1 ] = temp; } system( "cls" ); for( int j = 0; j < k; j++ ) cout << tabs[ j ] << endl; return( * tabs ); } i są jakieś gotowe algorytmy do usuwania z tablicy stringów znaków interpunkcyjnych |
|
1 « 2 » |