borisdexter

Ispitni

Jan 19th, 2020
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.46 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<ctype.h>
  4. // niza[i] e isto so *(niza+i)
  5. // vnesuvame brojki dodeka ne vneseme neshto shto ne e brojka
  6. // sekoja brojka treba da vidime dali pocnuva na neparna i zavrshuva na parna cifra
  7. // printame prvite 5 vakvi brojki sortirani po rastecki redosled
  8.  
  9.  
  10. int rekurzija(int x){
  11. // dali ni ostanalo edna cifra
  12. if(x<10){
  13.     if(x%2==1){
  14.         return 1;
  15.     }else{
  16.         return 0;
  17.     }
  18. }else{
  19.     return rekurzija(x/10);
  20. }
  21. }
  22. int main(){
  23. int n,i,j,pom,brojac=0;
  24. int niza[100];
  25. while(scanf("%d",&n)){
  26.     // prva neparna (rekurzija) i poslednata da e parna
  27.     if(rekurzija(n) && n%10%2==0){
  28.         niza[brojac]=n;
  29.         brojac++;
  30.     }
  31. }
  32.  
  33. // (bubble) sort na niza
  34. for(i=0;i<brojac;i++){
  35.     for(j=0;j<brojac-1;j++){
  36.         if(niza[j]>niza[j+1]){
  37.             pom=niza[j];
  38.             niza[j]=niza[j+1];
  39.             niza[j+1]=pom;
  40.         }
  41.     }
  42. }
  43. for(i=0;i<5;i++){
  44.     printf("%d ",niza[i]);
  45. }
  46. return 0;
  47. }
  48.  
  49.  
  50. /*
  51. int main(){
  52. int k;
  53. scanf("%d",&k);
  54. FILE *f1=fopen("text.txt","r");
  55. FILE *f2=fopen("output.txt","w");
  56. char c;
  57. while((c=fgetc(f1))!=EOF){
  58.     if(isalpha(c)){
  59.     // prvo za golemi bukvi
  60.     // A=65 Z=90
  61.     // X=88 k=3
  62.     if(isupper(c)){
  63.         // prv sluchaj
  64.         if(c+k>'Z'){
  65.             c=c+k-26;
  66.             //razlika=k-90-c;
  67.             //c='A'+razlika;
  68.         }else{
  69.             c=c+k;
  70.         }
  71.     }else{
  72.         if(c+k>'z'){
  73.             c=c+k-26;
  74.         }else{
  75.             c=c+k;
  76.         }
  77.     }
  78.     }
  79.     fputc(c,f2);
  80. }
  81.  
  82. fclose(f1);
  83. fclose(f2);
  84. return 0;
  85. }
  86.  
  87. /*
  88. // od kraj do pocetok izminuvanje na niza
  89. int cenzuriraj(char* niza,int n){
  90. if(n==-1){
  91.     return 0;
  92. }else{
  93.     if(tolower(*(niza+n))=='a' || tolower(*(niza+n))=='e' || tolower(*(niza+n))=='i' || tolower(*(niza+n))=='o' || tolower(*(niza+n))=='u'){
  94.         *(niza+n)='*';
  95.     }
  96.     return cenzuriraj(niza,n--);
  97. }
  98. }
  99.  
  100. // od pocetok do kraj na nizata| i=0 pocetok
  101. int cenzuriraj(char *niza,int n,int i){
  102. if(i==n){
  103.     return 0;
  104. }else{
  105.     return cenzuriraj(niza,n,i+1);
  106. }
  107. }
  108.  
  109.  
  110. int main(){
  111. int n,i;
  112. scanf("%d",&n);
  113. char niza[n];
  114. for(i=0;i<n;i++){
  115.     scanf("%c",&niza[i]);
  116. }
  117. cenzuriraj(niza,n);
  118. puts(niza);
  119. return 0;
  120. }
  121. // linii od code
  122. /*
  123. int main(){
  124. int n,i,j,brojac=0;
  125. scanf("%d",&n);
  126. int matrica[n][n];
  127. for(i=0;i<n;i++){
  128.     for(j=0;j<n;j++){
  129.         scanf("%d",&matrica[i][j]);
  130.     }
  131. }
  132.  
  133. // red po red
  134. for(i=0;i<n;i++){
  135.     for(j=0;j<n;j++){
  136.         // da ne sme vo posledna ili predposledna kolona
  137.         if(j<n-2){
  138.         if(matrica[i][j]==1 && matrica[i][j+1] && matrica[i][j+2]){
  139.             brojac++;
  140.             break;
  141.         }
  142.         }
  143.     }
  144. }
  145.  
  146. // kolona po kolona
  147. for(j=0;j<n;j++){
  148.     for(i=0;i<n;i++){
  149.         // da ne sme vo posleden i predposleden red
  150.         if(i<n-2){
  151.         if(matrica[i][j]==1 && matrica[i+1][j] && matrica[i+2][j]){
  152.             brojac++;
  153.             break;
  154.         }
  155.         }
  156.     }
  157. }
  158. printf("%d\n",brojac);
  159.  
  160. return 0;
  161. }
  162.  
  163. // fukncija za sovrshen broj X
  164. // glavna dijagonala i sporedna MAX sovrshen
  165. // site ostanati na MIN sovrshen, ako nema sovrshen broj site 0
  166. // razlika pomegju MAX i MIN
  167. /*
  168. int daliSovrshen(int x){
  169. int i,sumaDeliteli=0;
  170. for(i=x-1;i>0;i--){
  171.     // barame delitel
  172.     if(x%i==0){
  173.         sumaDeliteli+=i;
  174.     }
  175. }
  176.  
  177. if(x==sumaDeliteli){
  178.     return 1;
  179. }else{
  180.     return 0;
  181. }
  182. }
  183.  
  184. int main(){
  185. int n,i,j;
  186. scanf("%d",&n);
  187. int matrica[n][n];
  188. for(i=0;i<n;i++){
  189.     for(j=0;j<n;j++){
  190.         scanf("%d",&matrica[i][j]);
  191.     }
  192. }
  193. int maxSovrshen=-9999999;
  194. int minSovrshen=9999999;
  195.  
  196.  
  197. for(i=0;i<n;i++){
  198.     for(j=0;j<n;j++){
  199.         if(daliSovrshen(matrica[i][j])){
  200.             if(matrica[i][j]>maxSovrshen){
  201.                 maxSovrshen=matrica[i][j];
  202.             }
  203.             if(matrica[i][j]<minSovrshen){
  204.                 minSovrshen=matrica[i][j];
  205.             }
  206.         }
  207.     }
  208. }
  209.  
  210. for(i=0;i<n;i++){
  211.     for(j=0;j<n;j++){
  212.         // glavna ili sporedna dijagonala
  213.         if(i==j || i+j==n-1){
  214.             if(maxSovrshen==-9999999){
  215.                 maxSovrshen=0;
  216.             }
  217.             matrica[i][j]=maxSovrshen;
  218.         }else{
  219.             if(minSovrshen==9999999){
  220.                 minSovrshen=0;
  221.             }
  222.             matrica[i][j]=minSovrshen;
  223.         }
  224.         printf("%d ",matrica[i][j]);
  225.     }
  226.     printf("\n");
  227. }
  228.  
  229. printf("%d %d %d\n",maxSovrshen,minSovrshen,maxSovrshen-minSovrshen);
  230. return 0;
  231. }
  232. // kolku zborovi pochnuvaat i zavrshuvaat na dadena bukva
  233. /*
  234. int main(){
  235. char bukva=getchar();
  236. bukva=tolower(bukva);
  237. FILE *f1=fopen("text.txt","r");
  238. FILE *f2=fopen("output.txt","w");
  239. int brojac=0;
  240. char zbor[20];
  241. // a
  242. // ilija bojan stefan jovana ana
  243. while(fscanf(f1,"%s",zbor)!=EOF){
  244.     // prva bukva i posledna bukva proverki
  245.     if(tolower(zbor[0])==bukva && tolower(zbor[strlen(zbor)-1])==bukva){
  246.         brojac++;
  247.         fputs(zbor,f2);
  248.         fputc('\n',f2);
  249.     }
  250. }
  251. printf("%d\n",brojac);
  252. fclose(f1);
  253. fclose(f2);
  254. return 0;
  255. }
  256.  
  257.  
  258. /*
  259. // deli broj bez rekurzija
  260. int deliBroj(int x){
  261.     int promenliva=1;
  262.     while(x>0){
  263.         promenliva=promenliva*10;
  264.         x=x/10;
  265.     }
  266.     return promenliva;
  267. }
  268. // deli broj so rekurzija
  269. int deliBrojR(int x){
  270. if(x==0){
  271.     return 1;
  272. }else{
  273.     return 10*deliBrojR(x/10);
  274. }
  275. }
  276. /*
  277. 1) deliBrojR(55) = 10*deliBrojR(5)
  278. 2) deliBrojR(5)  = 10*deliBrojR(0)
  279. 3) deliBrojR(0) = 1
  280. 4) deliBrojR(5) = 10*1
  281. 5) deliBrojR(55) = 10*10
  282. */
  283. /*
  284. // bez povtoruvanje i bez rekurzija
  285. int bezPovtoruvanje(int prv,int vtor){
  286. int brojac=0;
  287.     while(prv>0){
  288.     if(prv%deliBroj(vtor)==vtor){
  289.         brojac++;
  290.         prv=prv/deliBroj(vtor);
  291.     }else{
  292.         prv=prv/10;
  293.     }
  294.     }
  295.     return brojac;
  296. }
  297.  
  298. // so povtoruvanje i bez rekurzija
  299. int soPovtoruvanje(int prv,int vtor){
  300. int brojac=0;
  301.     while(prv>0){
  302.     if(prv%deliBroj(vtor)==vtor){
  303.         brojac++;
  304.         prv=prv/10;
  305.     }else{
  306.         prv=prv/10;
  307.     }
  308.     }
  309.     return brojac;
  310. }
  311.  
  312. //15551 55 -> 2
  313. // so povtoruvanje so rekurzija
  314. int povtoruvanjeRekurzija(int prv,int vtor){
  315. if(prv==0){
  316.     return 0;
  317. }else{
  318.     if(prv%deliBroj(vtor)==vtor){
  319.         return 1 + povtoruvanjeRekurzija(prv/10,vtor);
  320.     }else{
  321.         return povtoruvanjeRekurzija(prv/10,vtor);
  322.     }
  323. }
  324. }
  325. // bez povtoruvanje so rekurzija
  326. int bezPovtoruvanjeRekurzija(int prv,int vtor){
  327. if(prv==0){
  328.     return 0;
  329. }else{
  330.     if(prv%deliBrojR(vtor)==vtor){
  331.         return 1 + bezPovtoruvanjeRekurzija(prv/deliBrojR(vtor),vtor);
  332.     }else{
  333.         return bezPovtoruvanjeRekurzija(prv/10,vtor);
  334.     }
  335. }
  336. }
  337. int main(){
  338. int prv,vtor,pom;
  339. scanf("%d%d",&prv,&vtor);
  340. if(vtor>prv){
  341.     pom=prv;
  342.     prv=vtor;
  343.     vtor=pom;
  344. }
  345. printf("%d\n",bezPovtoruvanjeRekurzija(prv,vtor));
  346. return 0;
  347. }
  348.  
  349. // premesti blok A od code
  350. /*
  351. int main(){
  352. int n,i,j;
  353. scanf("%d",&n);
  354. int matrica[n][2*n];
  355. for(i=0;i<n;i++){
  356.     for(j=0;j<2*n;j++){
  357.         scanf("%d",&matrica[i][j]);
  358.     }
  359. }
  360.  
  361.  
  362. n x 2*n
  363.  
  364. 00 01 02
  365. 10 11 12
  366. 20 21 22
  367. 30 31 32
  368. 40 41 42
  369. 50 51 52
  370.  
  371. n=3
  372.  
  373. ij = i-n n+j
  374. 30 = 03
  375. 31 = 04
  376. 32 = 05
  377. ij =
  378. 40 = 13
  379. 41 = 14
  380. 42 = 15
  381. ij =
  382. 50 = 23
  383. 51 = 24
  384. 52 = 25
  385.  
  386. int novaMatrica[2*n][n];
  387.  
  388. // prva polovina
  389. for(i=0;i<n;i++){
  390.     for(j=0;j<n;j++){
  391.         novaMatrica[i][j]=matrica[i][j];
  392.     }
  393. }
  394.  
  395. // vtora polovina
  396. for(i=n;i<2*n;i++){
  397.     for(j=0;j<n;j++){
  398.         novaMatrica[i][j]=matrica[i-n][n+j];
  399.     }
  400. }
  401.  
  402. for(i=0;i<2*n;i++){
  403.     for(j=0;j<n;j++){
  404.         printf("%d ",novaMatrica[i][j]);
  405.     }
  406.     printf("\n");
  407. }
  408.  
  409. return 0;
  410. }
  411. */
Advertisement
Add Comment
Please, Sign In to add comment