borisdexter

Funkcii

Dec 18th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. // tip - ime - parametri
  2. // int,double,float,char - tip na funkcija
  3. // void - ne treba da vrati nishto funkcijata
  4. // ime na funkcija
  5. // () - parametri na funkcijata
  6.  
  7.  
  8. // site promenlivi se lokalni
  9. int kvadrat(int x){
  10. return x*x;
  11. }
  12.  
  13. // void funkcija
  14. void kvadrat2(int x){
  15. printf("%d\n",x*x);
  16. }
  17.  
  18. // stepen
  19. int stepenFunkcija(int n,int stepen){
  20. int i;
  21. int fiksnaPromenliva=n;
  22. // n=3 stepen=4 -> 3*3*3*3
  23. // 0,1,2,3 ->
  24. for(i=0;i<stepen-1;i++){
  25. n=n*fiksnaPromenliva;
  26. }
  27. // 1) 3=3*3
  28. // 2) 9=9*3
  29. // 3) 27=27*3
  30. return n;
  31. // printf("%d",stepenFunkcija(n,stepen));
  32. }
  33.  
  34. // print niza
  35. void print(int niza[],int n){
  36. int i;
  37. for(i=0;i<n;i++){
  38. printf("%d ",niza[i]);
  39. }
  40. printf("\n");
  41. // print(niza,n);
  42. }
  43.  
  44. // print niza naopaku
  45. void printN(int niza[],int n){
  46. int i;
  47. for(i=n-1;i>=0;i--){
  48. printf("%d ",niza[i]);
  49. }
  50. // printN(niza,n);
  51. }
  52.  
  53. // palindrom
  54. // 364 -> 463
  55. // 1) 4
  56. // 2) 46
  57. // 3) 463
  58. void palindrom(int x){
  59. int obratenBroj=0;
  60. int temp=x;
  61. while(temp!=0){
  62. // temp%10 - zima poslednata cifra
  63. obratenBroj=obratenBroj*10 + temp%10;
  64. // temp=temp/10 - krati posledna cifra
  65. temp=temp/10;
  66. }
  67. if(x==obratenBroj){
  68. printf("palindrom e\n");
  69. }else{
  70. printf("ne e palindrom\n");
  71. }
  72. }
  73.  
  74. // daliPalindrom true/false = 1/0
  75. bool daliPalindrom(int x){
  76. int obratenBroj=0;
  77. int temp=x;
  78. while(temp!=0){
  79. // temp%10 - zima poslednata cifra
  80. obratenBroj=obratenBroj*10 + temp%10;
  81. // temp=temp/10 - krati posledna cifra
  82. temp=temp/10;
  83. }
  84. if(x==obratenBroj){
  85. return true;
  86. }else{
  87. return false;
  88. }
  89. }
  90.  
  91. // kolkuPalindromi vo niza
  92. int kolkuPalindromi(int niza[],int n){
  93. int i,brojac=0;
  94. for(i=0;i<n;i++){
  95. // povik na funkcija vo druga funkcija
  96. if(daliPalindrom(niza[i])){
  97. brojac++;
  98. }
  99. }
  100. // printf("Vo nizata ima %d broevi palindromi\n",kolkuPalindromi(niza,n));
  101. return brojac;
  102. }
  103.  
  104. // kolku pati X se pojavuva vo nizata
  105. int kolkuXniza(int niza[],int n,int x){
  106. int i,brojac=0;
  107. for(i=0;i<n;i++){
  108. if(niza[i]==x){
  109. brojac++;
  110. }
  111. }
  112. // printf("Cifrata %d ja ima %d pati vo nizata\n",x,kolkuXniza(niza,n,x));
  113. return brojac;
  114. }
  115.  
  116. /*
  117. // int *pX=&x;
  118. void smeni(int *pX,int *pY){
  119. printf("-FUNKCIJA- x=%d &x=%p\n",*pX,pX);
  120. printf("-FUNKCIJA- y=%d &y=%p\n",*pY,pY);
  121. int pom;
  122. pom=*pX;
  123. *pX=*pY;
  124. *pY=pom;
  125. }
  126.  
  127. // int x - ima adresa (&x) i vrednost (x)
  128. // int *p=&x - go pokazuvame kon adresata na veke postoecka promenliva, adresa (p) vrednost (*p)
  129. int main(){
  130. int x,y;
  131. scanf("%d%d",&x,&y);
  132. // af1229avs8
  133. printf("x=%d &x=%p\n",x,&x);
  134. printf("y=%d &y=%p\n",y,&y);
  135. smeni(&x,&y);
  136. printf("-POSLE FUNKCIJA- x=%d &x=%p\n",x,&x);
  137. printf("-POSLE FUNKCIJA- y=%d &y=%p\n",y,&y);
  138. return 0;
  139. }
  140. */
  141. // x12b2k14 niza[0]
  142. // x12b2k18 niza[1]
  143. // x12b2k22 niza[2]
  144. // x12b2k26 niza[3]
  145. // *(niza+i) e isto so niza[i]
  146. void sortirajNiza(int *niza,int n){
  147. int i,j,pom;
  148. // bubble sort
  149. // 1 2 3 4 5
  150. for(i=0;i<n;i++){
  151. for(j=0;j<n-1-i;j++){
  152. if(*(niza+j)>*(niza+j+1)){
  153. pom=*(niza+j);
  154. *(niza+j)=*(niza+j+1);
  155. *(niza+j+1)=pom;
  156. }
  157. }
  158. }
  159.  
  160.  
  161. /*
  162. sortirajNiza(niza,n);
  163. print(niza,n);
  164. */
  165.  
  166.  
  167. printf("\n");
  168. }
  169.  
  170. // smeni duplikati vo -1
  171. void smeniDuplikati(int *niza,int n){
  172. int i,j;
  173. int duplikat=-1;
  174. // eden po eden chlen
  175. for(i=0;i<n;i++){
  176. // eden posle chlenot i da odi do kraj na nizata
  177. for(j=i+1;j<n;j++){
  178. if(*(niza+i)==*(niza+j)){
  179. *(niza+j)=duplikat;
  180. duplikat--;
  181. }
  182. }
  183. duplikat=-1;
  184. }
  185. }
  186.  
  187.  
  188. int main(){
  189. int n,i;
  190. scanf("%d",&n);
  191. int niza[n];
  192. for(i=0;i<n;i++){
  193. scanf("%d",&niza[i]);
  194. }
  195. // i j
  196. // 1 2 5 4 3 2 1 2 0
  197. // 1 2 5 4 3 -1 -1 -1 0
  198. smeniDuplikati(niza,n);
  199. print(niza,n);
  200. return 0;
  201. }
Advertisement
Add Comment
Please, Sign In to add comment