Премини към съдържанието

Препоръчан отговор


Здравейте! Мъчих се да реша една едва ли не елементарна задача и се надявам да ми помогнете със завършването й тъй като все още се уча и нямам опит :)

Условие:

1.Генериране на случаен стринг[128]-Пример (bcafemgn) -направено

2.Подреждането му по азбучен ред от най-малката буквена стойност до най-голямата или обратното - няма значение-Пример (abcefgmn или nmgfecba) -направено

3.Разместване на първите четири букви и всяка със своята двойка-Пример (abcefgmn -> ecbafgmn) -тук се колебая

4.Извеждане на разменените букви от 3. на нов ред-Пример (abce и ecba) -пробвах с промяната на swap реда sw(a[0],a[1]); към sw(a[0],a[4])

5.Разместване на първите четири с последните четири и техните двойки [3.] Пример(abcefgmn -> gfnmbaec)

Само да допълня, че най-накрая int n=8; и мисля, че тези "get" команди са излишни.

#include <iostream> 
#include <cstring> 
#include <ctime> 
#include <cstdlib> 
using namespace std; 
void randomize() 
{ 
srand(time(0)); 
} 
void makeUp(int n,char lo,char hi,char p[]) 
{
for(int i=0;i<n;i++) 
p[i]=lo+rand()%(hi-lo+1); 
p[n]=0; 
} 
void inp(char p[]) 
{ 
cin.getline(p,128); 
} 
void out(const char *p) 
{ 
cout<<p<<endl; 
} 
char getMaxVal(const char p[]) 
{ 
char x=p[0]; 
for(int i=1;p[i]!=0;i++) 
if (p[i]>x) 
x=p[i]; 
return x; 
} 
char getMinVal(const char p[]) 
{ 
char x=p[0]; 
for (int i=1;p[i]!=0;i++) 
if(p[i]<x) 
x=p[i]; 
return x; 
} 
int getMinNo (int start,const char p[]) 
{ 
int x=start; 
for(int i=start+1;p[i];i++) 
if(p[i]<x) 
x=p[i]; 
return x; 
} 
int getMaxNo (int start,const char p[]) 
{ 
int x=start; 
for(int i=start+1;p[i];i++) 
if(p[i]>p[x]) 
x=i; 
return x; 
} 
void sw(char &a, char &b) 
{ 
char t=a; 
a=b; 
b=t; 
} 
void selSort(char p[]) 
{ 
for (int i=0;p[i];i++) 
sw(p[i],p[getMinNo(i,p)]); 
} 
void selSortRe(char p[]) 
{ 
for (int i=0;p[i];i++) 
sw(p[i],p[getMaxNo(i,p)]); 
} 
int main() 
{ 
randomize(); 
char a[128]; 
int n=4; 
makeUp(n,'a','z',a); 
cout<<a<<endl; 
//inp(a); 
//out(a); 
cout<<"Max Value:"<<getMaxVal(a)<<endl; 
cout<<"Min Value:"<<getMinVal(a)<<endl; 
cout<<"Min Index:"<<getMinNo(0,a)<<endl; 
cout<<"Max Index:"<<getMaxNo(0,a)<<endl; 
sw(a[0],a[1]); 
out(a); 
selSort(a); 
out(a); 
selSortRe(a); 
out(a); 
return 0; 
}

Благодаря предварително!

Редактирано от kokoshoko
Допусната грешка (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Защо си ги писал като мислиш, че са излишни?

Значи, ако бръкнеш в чичко гугъл за проблемът ти с разместването, 100% ще си получиш цялата информация.
 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Здравейте, във връзка с тази задача и за генерирането на случаен стринг , може ли да се направи да генерира случайни смислени думи .. ? 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 2 минути, Христина Роева написа:

Здравейте, във връзка с тази задача и за генерирането на случаен стринг , може ли да се направи да генерира случайни смислени думи .. ? 


Може, но ти трябва речник. Генерираш си случайно число с граница дължината на речника и връщаш думата с този номер.

 

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход


×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.