Advertisement
vasilmirov

Елаборат 6 задача 2

Dec 8th, 2015
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. Елаборат 6 задача 2 :
  2.  
  3. Да се напише програма која ќе дозволи внесување на N полиња за игра од тастатура.
  4. Секое поле од играта е претставено како знак, чии дозволени вредности се ‘P’, ‘А’ или ‘B’.
  5. Полето со вредност ‘P’ означува дека тоа поле е слободно, полето со вредност ‘А’ означува
  6. дека на тоа поле е застанат првиот играч, додека пак полето со вредност ‘B’ означува дека
  7. на тоа поле е застанат вториот играч. Програмата треба да пресмета и отпечати колку
  8. полиња треба да се врати назад првиот играч за да стигне до полето на вториот играч.
  9. Внесувањето на полиња прекинува доколку правилно се внесат сите N полиња или
  10. доколку се внесе невалидна вредност за поле (вредност која не е ‘Р’, ‘А’ или ‘В’). Доколку
  11. има повеќе играчи со вредност ‘А’ или ‘В’, тогаш програмата враќа колку места треба
  12. првиот (внесен од тастатура) играч ‘А’ да се врати до првиот (внесен од тастатура) играч
  13. ‘В’.
  14. Внесувањето на ново поле да се прави преку посебна функција која како резултат ја
  15. враќа вредноста за новото поле или враќа „#“ за грешка.
  16. Пример 1:
  17. Се внесува (за N = 26): PPPPPPВPPPPPВPPPPPАPPPPАPP
  18. На екран се печати: “Igracot 1 treba da se vrati 12 polinja nazad” (првото внесено ‘А’ да
  19. стигне до првото внесено ‘В’)
  20. Пример 2:
  21. Се внесува (за N = 14): PPPPPAPPPPBPPPPZ
  22. На екран се печати: “Greska” (бидејќи е внесено невалидно поле со вредност ‘Z’)
  23.  
  24.  
  25.  
  26. #include <stdio.h>
  27. #include <math.h>
  28. char vnes()
  29. {
  30. char pole;
  31. scanf("%c", &pole);
  32. if((pole!='A')&&(pole!='B')&&(pole!='P'))
  33. return '#';
  34. else
  35. return pole;
  36. }
  37.  
  38. int main()
  39. {
  40. int n, i=1, a=0, b=0;
  41. char c;
  42. scanf("%d", &n);
  43. while(n!=0)
  44. {
  45. c=vnes();
  46. if(c=='#')
  47. {
  48. printf("Greska");
  49. }
  50. else
  51. {
  52. if(b==0)
  53. {
  54. if(c=='B')
  55. b=i;
  56. }
  57. }
  58. if(a==0)
  59. {
  60. if(c=='A')
  61. a=i;
  62. }
  63. }
  64. i++;
  65. n--;
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement