Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Елаборат 6 задача 2 :
- Да се напише програма која ќе дозволи внесување на N полиња за игра од тастатура.
- Секое поле од играта е претставено како знак, чии дозволени вредности се ‘P’, ‘А’ или ‘B’.
- Полето со вредност ‘P’ означува дека тоа поле е слободно, полето со вредност ‘А’ означува
- дека на тоа поле е застанат првиот играч, додека пак полето со вредност ‘B’ означува дека
- на тоа поле е застанат вториот играч. Програмата треба да пресмета и отпечати колку
- полиња треба да се врати назад првиот играч за да стигне до полето на вториот играч.
- Внесувањето на полиња прекинува доколку правилно се внесат сите N полиња или
- доколку се внесе невалидна вредност за поле (вредност која не е ‘Р’, ‘А’ или ‘В’). Доколку
- има повеќе играчи со вредност ‘А’ или ‘В’, тогаш програмата враќа колку места треба
- првиот (внесен од тастатура) играч ‘А’ да се врати до првиот (внесен од тастатура) играч
- ‘В’.
- Внесувањето на ново поле да се прави преку посебна функција која како резултат ја
- враќа вредноста за новото поле или враќа „#“ за грешка.
- Пример 1:
- Се внесува (за N = 26): PPPPPPВPPPPPВPPPPPАPPPPАPP
- На екран се печати: “Igracot 1 treba da se vrati 12 polinja nazad” (првото внесено ‘А’ да
- стигне до првото внесено ‘В’)
- Пример 2:
- Се внесува (за N = 14): PPPPPAPPPPBPPPPZ
- На екран се печати: “Greska” (бидејќи е внесено невалидно поле со вредност ‘Z’)
- #include <stdio.h>
- #include <math.h>
- char vnes()
- {
- char pole;
- scanf("%c", &pole);
- if((pole!='A')&&(pole!='B')&&(pole!='P'))
- return '#';
- else
- return pole;
- }
- int main()
- {
- int n, i=1, a=0, b=0;
- char c;
- scanf("%d", &n);
- while(n!=0)
- {
- c=vnes();
- if(c=='#')
- {
- printf("Greska");
- }
- else
- {
- if(b==0)
- {
- if(c=='B')
- b=i;
- }
- }
- if(a==0)
- {
- if(c=='A')
- a=i;
- }
- }
- i++;
- n--;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement