borisdexter

Ispitni blok

Jan 18th, 2020
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.02 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. // 5167168 16
  6.  
  7. int main(){
  8. int i,brojac=0;
  9. char inputZbor[15];
  10. scanf("%s",&inputZbor);
  11. // go pravime zborot da e so mali bukvi
  12. for(i=0;i<strlen(inputZbor);i++){
  13.     inputZbor[i]=tolower(inputZbor[i]);
  14. }
  15. FILE *f=fopen("text.txt","r");
  16. char red[80],pamtiRed[80];
  17. char tempZbor[20];
  18. int goleminaRed;
  19. int maxZboroviVoRed=0;
  20. int index=0;
  21. while(fgets(red,80,f)!=NULL){
  22.     // resetirame brojacot na zborovi za sekoj red
  23.     brojac=0;
  24.     goleminaRed=strlen(red);
  25.     for(i=0;i<goleminaRed;i++){
  26.         // site od redot da gi praime mali bukvi
  27.         red[i]=tolower(red[i]);
  28.         if(isspace(red[i])){
  29.             // da se osigurame deka nema extra znaci od krajot
  30.             tempZbor[index]='\0';
  31.             if(strcmp(tempZbor,inputZbor)==0){
  32.                 brojac++;
  33.             }
  34.             // resetirame tempZbor promenlivata za da stavame nov zbor od pocetok
  35.             tempZbor[0]='\0';
  36.             // resetirame index za da dodavame pak od pocetokot karakteri
  37.             index=0;
  38.         }else{
  39.             // samo mali bukvi stavame vo zborot
  40.             tempZbor[index]=tolower(red[i]);
  41.             index++;
  42.         }
  43.     }
  44.     // sporeduvame brojot na zborovi so max zborovi do sega najdeni vo nekoj red
  45.     if(brojac>maxZboroviVoRed){
  46.         maxZboroviVoRed=brojac;
  47.         // go pamtime redot za da go isprintame na kraj
  48.         strcpy(pamtiRed,red);
  49.     }
  50. }
  51. printf("%s\n",pamtiRed);
  52. fclose(f);
  53. return 0;
  54. }
  55.  
  56.  
  57. /*
  58. cifriOdBrojR(1255) = 10 * 1000
  59. cifriOdBrojR(125)  = 10 * 100
  60. cifriOdBrojR(12)   = 10 * 10
  61. cifriOdBrojR(1)    = 10 * 1
  62. cifriOdBrojR(0) = 1
  63. */
  64. /*
  65. // so rekurzija cifri od broj
  66. int cifriOdBrojR(int x){
  67. if(x==0){
  68.     return 1;
  69. }else{
  70.     return 10*cifriOdBrojR(x/10);
  71. }
  72. }
  73.  
  74. // bez rekurzija cifri od broj
  75. int cifriOdBroj(int x){
  76. int nekojBrojac=1;
  77. while(x>0){
  78.     x=x/10;
  79.     nekojBrojac=nekojBrojac*10;
  80. }
  81. return nekojBrojac;
  82. }
  83.  
  84. // bez povtoruvanje
  85. int bezRekurzija(int a,int b){
  86. int brojac=0;
  87. while(a>0){
  88.     if(b==a%cifriOdBrojR(b)){
  89.         brojac++;
  90.         a=a/cifriOdBrojR(b);
  91.     }else{
  92.         a=a/10;
  93.     }
  94. }
  95. return brojac;
  96. }
  97.  
  98. // bez povtoruvanje rekurzija
  99. int soRekurzija(int a,int b){
  100. if(a==0){
  101.     return 0;
  102. }else{
  103.     if(a%cifriOdBrojR(b)==b){
  104.         return 1 + soRekurzija(a/cifriOdBrojR(b),b);
  105.     }else{
  106.         return soRekurzija(a/10,b);
  107.     }
  108. }
  109. }
  110.  
  111.  
  112.  
  113. // bez povtoruvanje
  114. int bezRekurzijaP(int a,int b){
  115. int brojac=0;
  116. while(a>0){
  117.     if(b==a%cifriOdBrojR(b)){
  118.         brojac++;
  119.         a=a/10;
  120.     }else{
  121.         a=a/10;
  122.     }
  123. }
  124. return brojac;
  125. }
  126. // so povtoruvanje rekurzija
  127. int soRekurzijaP(int a,int b){
  128. if(a==0){
  129.     return 0;
  130. }else{
  131.     if(b==a%cifriOdBrojR(b)){
  132.         return 1 + soRekurzijaP(a/10,b);
  133.     }else{
  134.         return soRekurzijaP(a/10,b);
  135.     }
  136. }
  137. }
  138.  
  139. int main(){
  140. int a,b,pom;
  141. scanf("%d%d",&a,&b);
  142. if(b>a){
  143.     pom=a;
  144.     a=b;
  145.     b=pom;
  146. }
  147. printf("%d\n",cifriOdBrojR(b));
  148. printf("Bez povtoruvanje %d\n",soRekurzija(a,b));
  149. printf("So povtoruvanje %d\n",soRekurzijaP(a,b));
  150. return 0;
  151. }
  152.  
  153. // sporedni dijagonali
  154. /*
  155. int main(){
  156. int n,m,i,j;
  157. scanf("%d",&n);
  158. int matrica[n][n];
  159. for(i=0;i<n;i++){
  160.     for(j=0;j<n;j++){
  161.         scanf("%d",&matrica[i][j]);
  162.     }
  163. }
  164. printf("\n");
  165.  
  166. int brojac=0;
  167. for(brojac=0;brojac<n;brojac++){
  168.     for(i=0;i<n;i++){
  169.         for(j=0;j<n;j++){
  170.             if(i+j==n-1-brojac){
  171.                 matrica[i][j]=brojac;
  172.             }
  173.             if(i+j==n-1+brojac){
  174.                 matrica[i][j]=brojac*-1;
  175.             }
  176.         }
  177.     }
  178. }
  179.  
  180.  
  181. for(i=0;i<n;i++){
  182.     for(j=0;j<n;j++){
  183.         printf("%d ",matrica[i][j]);
  184.     }
  185.     printf("\n");
  186. }
  187. return 0;
  188. }
  189.  
  190.  
  191. // glavni dijagonali
  192. /*
  193. int main(){
  194. int n,m,i,j;
  195. scanf("%d",&n);
  196. int matrica[n][n];
  197. for(i=0;i<n;i++){
  198.     for(j=0;j<n;j++){
  199.         scanf("%d",&matrica[i][j]);
  200.     }
  201. }
  202. printf("\n");
  203.  
  204. int brojac=0;
  205. for(brojac=0;brojac<n;brojac++){
  206.     for(i=0;i<n;i++){
  207.         for(j=0;j<n;j++){
  208.             if(i+brojac==j){
  209.                 matrica[i][j]=brojac;
  210.             }
  211.             if(i==j+brojac){
  212.                 matrica[i][j]=brojac*-1;
  213.             }
  214.         }
  215.     }
  216. }
  217.  
  218.  
  219. for(i=0;i<n;i++){
  220.     for(j=0;j<n;j++){
  221.         printf("%d ",matrica[i][j]);
  222.     }
  223.     printf("\n");
  224. }
  225. return 0;
  226. }
  227.  
  228. /*
  229. 5
  230. 0 0 0 0 0
  231. 0 0 0 0 0
  232. 0 0 0 0 0
  233. 0 0 0 0 0
  234. 0 0 0 0 0
  235. */
  236.  
  237.  
  238. // zadaca 2 od code
  239. /*
  240. int main(){
  241. int n,m,i,j;
  242. scanf("%d%d",&n,&m);
  243. int matrica[n][m];
  244. for(i=0;i<n;i++){
  245.     for(j=0;j<m;j++){
  246.         scanf("%d",&matrica[i][j]);
  247.     }
  248. }
  249. int i1,j1;
  250. scanf("%d%d",&i1,&j1);
  251.  
  252. int suma1=0;
  253. int suma2=0;
  254. int suma3=0;
  255. int suma4=0;
  256. for(i=0;i<n;i++){
  257.     for(j=0;j<m;j++){
  258.         // reg 1
  259.         if(i<i1 && j>=j1){
  260.             suma1+=matrica[i][j];
  261.             //matrica[i][j]=1;
  262.         }
  263.         // reg 2
  264.         if(i<i1 && j<j1){
  265.             suma2+=matrica[i][j];
  266.             //matrica[i][j]=2;
  267.         }
  268.         // reg 3
  269.         if(i>=i1 && j<j1){
  270.             suma3+=matrica[i][j];
  271.             //matrica[i][j]=3;
  272.         }
  273.         // reg 4
  274.         if(i>=i1 && j>=j1){
  275.             suma4+=matrica[i][j];
  276.             //matrica[i][j]=4;
  277.         }
  278.         //printf("%d ",matrica[i][j]);
  279.     }
  280.     //printf("\n");
  281. }
  282. printf("%d %d %d %d\n",suma1,suma2,suma3,suma4);
  283. return 0;
  284. }
  285.  
  286.  
  287.  
  288. /*
  289. int main(){
  290. int n,m,i,j;
  291. scanf("%d",&n);
  292. int matrica[n][n];
  293. for(i=0;i<n;i++){
  294.     for(j=0;j<n;j++){
  295.         scanf("%d",&matrica[i][j]);
  296.     }
  297. }
  298.  
  299. for(i=0;i<n;i++){
  300.     for(j=0;j<n;j++){
  301.         // 1 kvadrant
  302.         if(j<n/2 && i<n/2){
  303.             matrica[i][j]=1;
  304.         }
  305.         // 2 kvadrant
  306.         if(j>=n/2 && i<n/2){
  307.             matrica[i][j]=2;
  308.         }
  309.         // 3 kvadrant
  310.         if(i>=n/2 && j<n/2){
  311.             matrica[i][j]=3;
  312.         }
  313.         // 4 kvadrant
  314.         if(i>=n/2 && j>=n/2){
  315.             matrica[i][j]=4;
  316.         }
  317.         printf("%d ",matrica[i][j]);
  318.     }
  319.     printf("\n");
  320. }
  321. return 0;
  322. }
  323.  
  324. // premesti blok A od code
  325. /*
  326. int main(){
  327. int n,m,i,j;
  328. scanf("%d",&n);
  329. int matrica[n][2*n];
  330. for(i=0;i<n;i++){
  331.     for(j=0;j<2*n;j++){
  332.         scanf("%d",&matrica[i][j]);
  333.     }
  334. }
  335. int novaMatrica[2*n][n];
  336.  
  337. 3
  338. 1 1 1 0 0 0
  339. 1 1 1 0 0 0
  340. 1 1 1 0 0 0
  341.  
  342.  
  343. 3 x 2*3
  344.  
  345. 00 01 02 03 04 05
  346. 10 11 12 13 14 15
  347. 20 21 22 23 24 25
  348.  
  349. 2*3 x 3
  350.  
  351. 00 01 02
  352. 10 11 12
  353. 20 21 22
  354. 30 31 32
  355. 40 41 42
  356. 50 51 52
  357.  
  358. i=3 -> i=0
  359. 30 -> 03
  360. 31 -> 04
  361. 32 -> 05
  362. i=4 -> i=1
  363. 40 -> 13
  364. 41 -> 14
  365. 42 -> 15
  366. i=5 -> i=2
  367. 50 -> 23
  368. 51 -> 24
  369. 52 -> 25
  370.  
  371.  
  372. // prvata polovina od matricata
  373. for(i=0;i<n;i++){
  374.     for(j=0;j<n;j++){
  375.         novaMatrica[i][j]=matrica[i][j];
  376.     }
  377. }
  378. // vtorata polovina od matricata
  379. for(i=n;i<2*n;i++){
  380.     for(j=0;j<n;j++){
  381.         novaMatrica[i][j]=matrica[i-n][j+n];
  382.     }
  383. }
  384.  
  385. for(i=0;i<2*n;i++){
  386.     for(j=0;j<n;j++){
  387.         printf("%d ",novaMatrica[i][j]);
  388.     }
  389.     printf("\n");
  390. }
  391. return 0;
  392. }
  393. // najdolg red od code
  394. /*
  395. int main(){
  396. FILE *f=fopen("text.txt","r");
  397. char red[80];
  398. char najdolgRed[80];
  399. int maxRed=0;
  400. int n,i;
  401. int brojac=0;
  402.  
  403. while(fgets(red,80,f)!=NULL){
  404.     brojac=0;
  405.     n=strlen(red);
  406.     for(i=0;i<n;i++){
  407.         if(isdigit(red[i])){
  408.             brojac++;
  409.         }
  410.     }
  411.     if(n>=maxRed && brojac>=2){
  412.         maxRed=n;
  413.         strcpy(najdolgRed,red);
  414.     }
  415. }
  416.  
  417. int prvaCifra;
  418. for(i=0;i<strlen(najdolgRed);i++){
  419.     if(isdigit(najdolgRed[i])){
  420.         prvaCifra=i;
  421.         break;
  422.     }
  423. }
  424. int poslednaCifra;
  425. for(i=strlen(najdolgRed)-1;i>=0;i--){
  426.     if(isdigit(najdolgRed[i])){
  427.         poslednaCifra=i;
  428.         break;
  429.     }
  430. }
  431.  
  432. for(i=prvaCifra;i<=poslednaCifra;i++){
  433.     printf("%c",najdolgRed[i]);
  434. }
  435. printf("\n");
  436. fclose(f);
  437. return 0;
  438. }
  439.  
  440. /*
  441. // zadaca 1 od code
  442. // bez rekurzija
  443. int sum_pos(int *niza,int n,int ind){
  444. int i;
  445. int suma=0;
  446. if(ind>n){
  447.     return 0;
  448. }else{
  449.     for(i=ind;i<n;i++){
  450.         suma+=*(niza+i);
  451.     }
  452.     return suma;
  453. }
  454. }
  455.  
  456. // so rekurzija
  457. int sum_posR(int *niza,int n,int ind){
  458. if(ind>=n){
  459.     return 0;
  460. }else{
  461.     return *(niza+ind) + sum_posR(niza,n,ind+1);
  462. }
  463. }
  464.  
  465. int main(){
  466. int n,i;
  467. scanf("%d",&n);
  468. int niza[n];
  469. for(i=0;i<n;i++){
  470.     scanf("%d",&niza[i]);
  471. }
  472. int ind;
  473. scanf("%d",&ind);
  474. printf("%d\n",sum_posR(niza,n,ind));
  475. return 0;
  476. }
  477.  
  478.  
  479. // linii od code
  480. /*
  481. int main(){
  482. int n,m,i,j;
  483. scanf("%d%d",&n,&m);
  484. int matrica[n][m];
  485. for(i=0;i<n;i++){
  486.     for(j=0;j<m;j++){
  487.         scanf("%d",&matrica[i][j]);
  488.     }
  489. }
  490.  
  491. int brojac=0;
  492. // red po red
  493. for(i=0;i<n;i++){
  494.     for(j=0;j<m;j++){
  495.         // toj levo i toj desno da se 1
  496.         if(j>0 && j<m-1 && matrica[i][j]==1){
  497.             if(matrica[i][j-1]==1 && matrica[i][j+1]==1){
  498.                 brojac++;
  499.                 break;
  500.             }
  501.         }
  502.     }
  503. }
  504. // kolona po kolona
  505. for(j=0;j<m;j++){
  506.     for(i=0;i<n;i++){
  507.         // toj gore i toj dole da se 1
  508.         if(i>0 && i<n-1 && matrica[i][j]==1){
  509.             if(matrica[i-1][j]==1 && matrica[i+1][j]==1){
  510.                 brojac++;
  511.                 break;
  512.             }
  513.         }
  514.     }
  515. }
  516.  
  517. printf("%d\n",brojac);
  518. return 0;
  519. }
  520. */
Advertisement
Add Comment
Please, Sign In to add comment