Pozdrav. Na faksu sam dobio zadatak koji ne znam rješiti. Da li netko zna rješenje.
Stvorite polje od n tekstova. Pronađite tekst s najviše riječi i kopirajte ga u string T. U stringu T zamijenite svako slovo prve riječi sa znakom “&“. U funkciji sad pronađite sumu ASCII kodova promjenjenog stringa T te u funkciji neq pretvorite dobivenu sumu ASCII kodova u sustav s bazom19. Stvorite jednodimenzionalno dinamičko polje N u koje čete upisati brojeve znakova svake riječi stringa T čija je duljina veća od 2 znaka. Ispišite polje tekstova, promjenjeni string T, dobiveni ekvivalent u sustavu s bazom 19 i dinamičko polje N.
#include "stdafx.h"//ukljucene header fajla #include <iostream>//ukljucenje header fajla #include <string.h>//uljucenje header fajla #define redak 100 #define max 100 #define baza 19 using namespace std;//koristenje imenskog prostora std objekta int sad(char suma[])//zaglavlje funkcije sad tipa int sa jednim argumentom {//otvaranje bloka naredbi int rezultat=0;//deklariranje i inicijalizacije varijable na nulu for(int i=0; i<strlen(suma); i++)//prebrojavanje svakog slova string suma if(suma[i]>=97 && suma[i]<=122)//ako se slovo nalazi u ovom intervalu ascii kodova rezultat+=suma[i];//onda ga prebroji varijabli rezultat return rezultat;//vrati reultat preko povratnog tipa }//zatvaranje bloka naredbi void neq(int suma)//zaglavlje funkcije {//otvaranje bloka naredbi if(suma>baza-1)//ako je suma veca od baze -1 onda neq(suma/baza);//onda napravi rekurziju funkcije , pritom sa sumu podjelis sa bazom if(suma%baza>9)//ako je ostatak pri djeljenju veci od 9 cout<<char(suma%baza+55);//onda ispisi slovo else cout<<suma%baza;//ispis ostatak }//zatvaranje bloka void main()//zaglavalje funkcije main tipa void {//otvaranje bloka naredbi funkcije main int n;//deklariranje varijable n char N[redak][max];//deklariarnje 1d polja za unos stringova int brojrazmaka=0;//deklariranje varijable brojrazmaka i inicijalizacija na nulu char T[redak];//deklariranje varijeble tipa char int sumaascii;//deklariranje varijable sumaascii cout<<"Upisite broj rijeci koji zelite unjeti ";//ispis zahtjeva za korisnike cin>>n;//upis vrijednosti u variablu n cin.ignore();//ignoriranje unosa for(int i=0; i<n; i++)//zaglavlje for petlje za upis {//otvaranje bloka naredbi for petlje cout<<"Upisite "<<i+1<<". rijec: "; cin.getline(N[i], max); }//zatvaranje bloka naredbi for(int i=0; i<n; i++) //for petlja {//otvaranje bloka naredbi vanjske for petlje int razmak=0;//deklaracija i inicijalizacija na nulu for(int j=0; j<strlen(N[i]); j++) if(N[i][j]==' ' || j==0)//ako smo naisli na razmak ili ako je i==0(prva rijec) razmak++;//onda razmak uvecaj za 1 if(brojrazmaka<razmak)//ako vrijedi uvjet {//otvaranje bloka naredbi funkcije if brojrazmaka=razmak;//onda brojrazmaka postavi na novu vrijednost strcpy(T, N[i]);//kopiranje u string }//zatvaranje bloka naredbi funkcije if }//zatvaranje vanjske petlje for(int i=0;T[i]!=' ';i++) { T[i]='&'; } sumaascii=sad(T);//slanje vrijednosti u funkciju kdo i pri zavrsetku funckje spreamanje vrijedsnoti u sumaascii cout<<endl<<"Ekvivalent sume u sustavu sa bazom "<<baza<<" je: ";//ispis ekvivalenta neq(sumaascii);//slanje vrijednosti u f-ju i ispisivanje unutar te funckije cout<<endl;//novi red int *H=new int[n];//deklariranje i inicijalizacija dinamickog polja tipa int for(int i=0; i<n; i++) *(H+i)=strlen(N[i]);//pridruzivanje vrijednosti dinamickom polju cout<<endl;// novi red for(int i=0; i<n; i++)//for petlja za ispis vrijednosti dinamickog polja if( strlen(N[i])>2) cout<<i+1<<". Rijec ima "<<*(H+i)<<" znakova."<<endl;//ispis dinamickog polje cout<<endl;//novi red delete []H;//dealokacija dinamickog polja H=0;//preusmjeravanje pokazivaca na nulu cout<<"U stringu se nalazi: "<<T<<endl<<endl;//ispis string for(int i=0; i<n; i++)//for petlja za ispiis cout<<i+1<<". upisana rijec je: "<<N[i]<<endl;//ispis cout<<endl;//novi red }//zatvaranje bloka naredbi funkcije main
Ono na čemu sam zapeo je ispis jednodimenzionalnog dinamičkog polja u kojem su upisani brojevi znakova svake riječi stringa T čija je duljina veća od 2 znaka.Meni program ispisuje ukupan broj znakova svakog stringa.
