Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Zadatak 2:
- Napisati program koji omogućava unos karaktera sve dok se ne popuni niz od 30 elemenata prema sljedećim pravilima:
- · Elementi niza mogu biti samo velika slova i brojevi.
- · Svaki naredni element u nizu treba da bude abecedno poslije prethodnog, odnosno u slučaju broja, dalje od nule na brojnoj osi (voditi računa da se međusobno porede samo slova i samo brojevi).
- · Ukupna suma ASCII kodova unesenih elemenata ne smije biti veća od 1000.
- Izlaz iz programa treba da budu dobiveni elementi niza. Testni primjer je urađen za niz od 5 elemenata.
- Unesite veliko slovo ili broj: D
- Unesite veliko slovo ili broj: 3
- Unesite veliko slovo ili broj: A
- Unesite veliko slovo ili broj: F
- Unesite veliko slovo ili broj: 0
- Unesite veliko slovo ili broj: 4
- Unesite veliko slovo ili broj: R
- */
- // charovi 65 - 90
- // brojevi 48 - 57
- #include <iostream>
- using namespace std;
- int v=5;
- int toA(char num){
- return (int)num;
- }
- void unos(char niz[],int v){
- int asciiSuma =0;
- char zadnjiChar ='@', zadnjiInt ='/',temp;
- for(int i=0; i<v; i++){
- do{
- cout << "Unesite niz[" << i << "]: ";
- cin >> temp;
- }while((toA(temp)<65 || toA(temp)>90) && (toA(temp)<48 || toA(temp)>57) || asciiSuma+toA(temp)>1000);
- // charovi 65 - 90
- // brojevi 48 - 57
- if (toA(temp) >= 65 && toA(temp)<=90 && toA(temp) > toA(zadnjiChar)){
- niz[i] = temp;
- zadnjiChar = niz[i];
- asciiSuma+=toA(niz[i]);
- }
- else if ((toA(temp)>=48 && toA(temp) <=57) && toA(temp) > toA(zadnjiInt)){
- niz[i] = temp;
- zadnjiInt = niz[i];
- asciiSuma+=toA(niz[i]);
- }else{
- i--;
- }
- }
- }
- void ispis(char niz[], int v){
- for (int i=0; i<v; i++){
- cout << niz[i] << endl;
- }
- }
- int main()
- {
- char niz[v];
- unos(niz,v);
- ispis(niz,v);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement