Advertisement
simov

SP Lab. 5

Nov 19th, 2013
897
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. 1. Сортирање
  2.  
  3. Да се напише функција која за дадена низа А од N (N < 100) природни броеви (низата и бројот N се вчитуваат од СВ) ќе ги сортира нејзините елементи во растечки редослед и ќе го врати како резултат најмалиот елемент во низата.
  4. --------------------------------------------------
  5. ‪#include <stdio.h>
  6. void niza (int a[], int n)
  7. {
  8. int i,j,pom;
  9. for(i=0; i<n; i++)
  10. {
  11. for(j=i; j<n; j++)
  12. if(a[i]>a[j])
  13. {
  14. pom=a[i];
  15. a[i]=a[j];
  16. a[j]=pom;
  17. }
  18. }
  19. }
  20. int main()
  21. {
  22. int n,i,j,pom,a[10];
  23.  
  24. printf("N= ");
  25. scanf("%d",&n);
  26.  
  27. for(i=0; i<n; i++)
  28. {
  29. scanf("%d",&a[i]);
  30. }
  31. niza(a,n);//se povikuva funkcijata za da ja sortira nizata vo rastecki redosled
  32.  
  33.  
  34. for(i=0; i<n; i++)
  35. printf("%d \t",a[i]);
  36.  
  37. printf("\nNajmal element vo nizata e %d",a[0]);/
  38.  
  39. return 0;
  40. }
  41. --------------------------------------------------
  42. 2. Производ на цифри на парни позиции
  43.  
  44. Да се напише функција која ќе го врати производот на сите цифри кои се наоѓаат на парни позиции од даден природен број (гледано од десно кон лево). Се смета дека најмалку значајната цифра се наоѓа на 1-та позиција.
  45. --------------------------------------------------
  46. #include <stdio.h>
  47. int proizvod (int broj)
  48. {
  49. int i=1,pro=1,parcifra=1;
  50.  
  51. while(broj!=0)
  52. {
  53. pro=broj%10;
  54. broj=broj/10;
  55. if(i%2==0)
  56. {
  57. parcifra=parcifra*pro;
  58. }
  59. i++;
  60. }
  61. return parcifra;
  62. }
  63.  
  64. int main()
  65. {
  66. int n;
  67.  
  68. printf("Broj= ");
  69. scanf("%d",&n);
  70. printf("Proizvodot na parnite cifri e %d",proizvod(n));
  71.  
  72. return 0;
  73. }
  74. --------------------------------------------------
  75. 3. НЗД
  76.  
  77. Да се напише функција која ќе го најде НЗД (најголем заеднички делител) на дадени два броја.
  78. --------------------------------------------------
  79. #include <stdio.h>
  80. int najgolemzd(int m,int n)
  81. {
  82. int pom,nzd,i;
  83. if(n > m)
  84. {
  85. pom=n;
  86. }
  87. else
  88. {
  89. pom=n;
  90. n=m;
  91. m=pom;
  92. }
  93. for(i=1; i<n; i++)
  94. if(n%i==0&&m%i==0)
  95. nzd=i;
  96. return nzd;
  97. }
  98. int main()
  99. {
  100. int a,b;
  101. printf("A= ");
  102. scanf("%d",&a);
  103. printf("B= ");
  104. scanf("%d",&b);
  105. printf("Najgolem Zaednicki Delitel e %d",najgolemzd(a,b));
  106. return 0;
  107. }
  108. --------------------------------------------------
  109. 4. Поместување лево
  110.  
  111. Направете функција која што прима еден број како аргумент и ги поместува неговите цифри за 3 позиции на лево. Од СВ исчитајте N броеви и повикајте ја функцијата за сите броеви. Испечатете ги на СВ новодобиените броеви секој во посебен ред.
  112. --------------------------------------------------
  113. #include <stdio.h>
  114. int pomestuvach(int argum){
  115. if(argum <100 && argum > 9) return (argum%10)*10+argum/10;
  116. if(argum<10||argum<1000) return argum;
  117. int dekadenbrojach=1, rezerva=argum;
  118. for(; rezerva/1000>1000 ;rezerva/=10,dekadenbrojach*=10);
  119. //printf("%d %d\n" , dekadenbrojach,rezerva); za proverka
  120. if (argum<10000)
  121. return (argum%10)*1000+argum/10;
  122. if (argum<100000)
  123. return (argum%100)*1000+argum/100;
  124. return (argum%(1000*dekadenbrojach))*1000+argum/(1000*dekadenbrojach);}
  125. int main(){
  126. int poedinechenbroj,vkupnoN;
  127. scanf("%d",&vkupnoN);
  128. while(vkupnoN)
  129. {scanf("%d",&poedinechenbroj);
  130. printf("%d\n", pomestuvach(poedinechenbroj));
  131. vkupnoN--;}
  132. return 0;}
  133. --------------------------------------------------
  134. 5. Отстрани дупликати
  135.  
  136. Да се направи функција која има два аргументи: низа од N цели броеви и бројот на елементи N. Од низата да се отстранат сите елементи кои се појавуваат повеќе од еднаш. Низата и нејзината должина се вчитува од СВ. На СИ испечатете ги елементите на новодобиената низа оделени со една белина.
  137. --------------------------------------------------
  138. #include <stdio.h>
  139.  
  140. int niza[100], n;
  141.  
  142. int ednakvo(int a){
  143. int i;
  144. for(i=0; i<a; i++)
  145. if(niza[i] == niza[a]) return 1;
  146. return 0;
  147. }
  148. void duplikati(){
  149. int i, temp = 0;
  150. for(i=0; i<n; i++)
  151. if(!ednakvo(i)) printf("%d ", niza[i]);
  152. }
  153. int main(){
  154. int i, j;
  155. scanf("%d", &n);
  156. for(i=0; i<n; i++)
  157. scanf("%d", &niza[i]);
  158. duplikati();
  159. return 0;
  160. }
  161. --------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement