Advertisement
davidzhk

Untitled

Nov 23rd, 2014
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.49 KB | None | 0 0
  1. Да се напише програма со која број даден во декаден броен систем ќе се претвори во тернарен (основа на тернарниот систем е 3, односно тернарните броеви
  2. може да бидат составени само од цифрите 0,1 и 2). Задачата да се реши со користење на рекурзивна функција.
  3. #include<stdio.h>
  4. void function(int n)
  5. {
  6. if(n==0) return;
  7. else
  8. {
  9. function(n/3);
  10. printf("%d",n%3);
  11. return;
  12. }
  13. }
  14. int main()
  15. {
  16. int br;
  17. scanf("%d",&br);
  18. function(br);
  19. return 0;
  20. }
  21.  
  22. Пример влез
  23. 6
  24. Пример излез
  25. 20
  26.  
  27.  
  28.  
  29. Да се напише програма во која користејќи рекурзивна функција која прима два аргументи ќе се испечати во форма на палиндром зборот чија средна буква е
  30. првиот аргумент на функцијата, а крајните букви (кои се исти) се претставени со вториот аргумент. Меѓу средната и крајните букви треба да се стојат
  31. буквите кои се наоѓаат меѓу средната и крајните букви во азбуката. Пр. за внесени аргументи (a,c) излез: cbabc
  32.  
  33. #include<stdio.h>
  34. void function(char mid,char end)
  35. {
  36.  
  37. if(mid==end)
  38. printf("%c",mid);
  39. else
  40. {
  41. printf("%c",end);
  42. function(mid,end-1);
  43. printf("%c",end);
  44.  
  45. }
  46. }
  47. int main()
  48. {
  49. char a,b;
  50. scanf("%c%c",&a,&b);
  51. function(a,b);
  52. return 0;
  53. }
  54.  
  55. Пример влез
  56. ad
  57. Пример излез
  58. dcbabcd
  59.  
  60.  
  61.  
  62.  
  63. Да се напише програма во која е имплементирана рекурзивна функција која проверува дали меѓу кои било две цифри што се наоѓаат на иста позиција броејќи
  64. од лево (за едната), односно броејќи од десно (за другата) нема поголема цифра од нив. Бројот на цифри треба да биде непарен и не помал од 3.
  65. Функцијата како влезен аргумент го прима бројот на цифри.
  66. #include<stdio.h>
  67. #include<math.h>
  68.  
  69. int greshka=1;
  70. int funkcija(int n,int cifri)
  71. {
  72. if(cifri==1)
  73. {
  74. return n;
  75. }
  76. else
  77. {
  78.  
  79. int milionche=pow(10,cifri-1);
  80. int prva = n/milionche;
  81. int posledna =n%10;
  82. int tmp= funkcija((n%milionche)/10,cifri-2);
  83. if((prva)>=tmp )
  84. if(posledna>= tmp)
  85. return max(prva, posledna, tmp);
  86.  
  87. greshka =0;
  88. return 0;
  89. }
  90. }
  91.  
  92. int max(int i, int j, int k){
  93. if((i>=j)&&(i>=k))
  94. return i;
  95. if((i<=j)&&(k<=j))
  96. return j;
  97. if((k>=i)&&(k>=j))
  98. return k;
  99.  
  100. }
  101. int main()
  102. {
  103. int n,cifri;
  104. scanf("%d %d",&n,&cifri);
  105. funkcija(n,cifri);
  106. printf("%d",greshka);
  107. return 0;
  108. }
  109.  
  110. Пример влез
  111. 7591468
  112. 7
  113. Пример излез
  114. 0
  115.  
  116.  
  117.  
  118.  
  119. Во низа од N природни броеви (N и низата се читаат од СВ) соседните заемно прости броеви (немаат заеднички делители) да си ги заменат позициите.
  120. На ист елемент од низата може најмногу еднаш да му се изврши замена. Да се испечати на СИ изменетата низа. Замената да се реализира во посебна функција.
  121. #include<stdio.h>
  122. void swap(int *a,int *b)
  123. {
  124. int t=*a;
  125. *a=*b;
  126. *b=t;
  127. }
  128. int prosti(int a,int b,int c)
  129. {
  130. if(a+1==c||b+1==c) return 1;
  131. else if(a%c==0&&b%c==0) return 0;
  132. else return prosti(a,b,c+1);
  133. }
  134. int main()
  135. {
  136. int n,i;
  137.  
  138. scanf("%d",&n);
  139. int a[n];
  140. for(i=0;i<n;i++)
  141. scanf("%d",&a[i]);
  142. i=1;
  143. while(i<n)
  144. {
  145. if(prosti(a[i-1],a[i],2))
  146. {
  147. swap(&a[i-1],&a[i]);
  148. i+=2;
  149. }
  150. else i++;
  151. }
  152. for(i=0;i<n;i++)
  153. printf("%d ", a[i]);
  154. return 0;
  155. }
  156.  
  157. Пример влез
  158. 8
  159. 4 8 9 15 7 12 4 7
  160. Пример излез
  161. 4 9 8 7 15 12 7 4
  162.  
  163.  
  164.  
  165. Да се напише функција за ротирање на елементите на дадена низа за m места (ако m е позитивен низата се ротира во десно, а ако е негативен низата се
  166. ротира во лево). Задачата да се реши со помош на покажувачи.
  167. #include<stdio.h>
  168. void desno(int *a,int n)
  169. {
  170. int i,pom=*(a+n-1);
  171. for (i=n-1;i>0;i--)
  172. *(a+i)=*(a+i-1);
  173. *a=pom;
  174. }
  175. void levo(int *a,int n)
  176. {
  177. int i,k=*a;
  178. for(i=0;i<n-1;i++)
  179. *(a+i)=*(a+i+1);
  180. *(a+n-1)=k;
  181. }
  182. int main()
  183. {
  184. int m,n,a[100],k,i;
  185. scanf("%d",&n);
  186. scanf("%d",&m);
  187. for(i=0;i<n;i++)
  188. scanf("%d",&a[i]);
  189. k=m;
  190.  
  191. if(m>0)
  192.  
  193. while(k)
  194. {
  195. desno(a,n);
  196. k--;
  197. }
  198. else{
  199.  
  200. while(k)
  201. {
  202. levo(a,n);
  203. k++;
  204. }
  205. }
  206.  
  207. for(i=0;i<n;i++)
  208. printf("%d ",a[i]);
  209.  
  210. return 0;
  211. }
  212.  
  213.  
  214. Пример влез
  215. 4
  216. 2
  217. 1 2 3 4
  218. Пример излез
  219. 3 4 1 2
  220.  
  221.  
  222. Да се напише функциjа за сортирање на низа од цели броеви. Потоа да се напише функциjа за споjување на две низи од цели броеви сортирани во растечки
  223. редослед. Оваа функциjа треба во нова низа да ги смести веќе сортираните две низи во нова низа коjа ќе биде исто така сортирана во растечки редослед.
  224. Во оваа функциjа не смее да се повикува функиjата за сортирање.
  225.  
  226. #include <stdio.h>
  227. #define MAX 400
  228.  
  229.  
  230. void sort(int *a, int n) {
  231. // vasiot kod ovde
  232. int i,j,pom;
  233. for(i=0;i<n;i++)
  234. for(j=0;j<n-i-1;j++)
  235. {
  236. if(a[j]>a[j+1])
  237. {
  238. pom=a[j];
  239. a[j]=a[j+1];
  240. a[j+1]=pom;
  241. }
  242.  
  243. }
  244. }
  245.  
  246. void merge(int *a, int *b, int *c, int n) {
  247. // vasiot kod ovde
  248. int k,m,pom;
  249. for(k=0;k < n;k++)
  250. {
  251. c[k]=a[k];
  252. c[n+k]=b[k];
  253.  
  254. }
  255. for(k=0;k < n;k++)
  256. for(m=0;m < 2*n-k-1;m++)
  257. {
  258. if( c[m] > c[m+1])
  259. {
  260. pom=c[m];
  261. c[m]=c[m+1];
  262. c[m+1]=pom;
  263. }
  264. }
  265.  
  266. }
  267.  
  268. int main() {
  269. int n;
  270. int a[MAX];
  271. int b[MAX];
  272. int c[MAX];
  273. scanf("%d", &n);
  274. int i;
  275. for(i = 0; i < n; ++i) {
  276. scanf("%d", &a[i]);
  277. }
  278. for(i = 0; i < n; ++i) {
  279. scanf("%d", &b[i]);
  280. }
  281. sort(a, n);
  282. sort(b, n);
  283. merge(a, b, c, n);
  284. for(i = 0; i < 2 * n; ++i) {
  285. printf("%d ", c[i]);
  286. }
  287. return 0;
  288. }
  289. Пример влез
  290. 3
  291. 8 5 12
  292. 7 1 4
  293. Пример излез
  294. 1 4 5 7 8 12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement