Advertisement
MikiStrail

Задачи за вежбање за втор колоквиум - СП

Jan 31st, 2019
346
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.61 KB | None | 0 0
  1. 1. Рекурзија
  2.  
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <ctype.h>
  7. #define MAX 100
  8. int poramni(int a){
  9.     if(a==0)
  10.         return 0;
  11.     else if(a%10==9) return 7+poramni(a/10)*10;
  12.         return (a%10)+poramni(a/10)*10;
  13. }
  14. void sort(int *a, int n){
  15.     int i,j,temp=0;
  16.     for(i=0;i<n-1;i++){
  17.         for(j=i+1;j<n;j++){
  18.             if(a[i]>a[j]){
  19.                 temp=a[i];
  20.                 a[i]=a[j];
  21.                 a[j]=temp;
  22.             }
  23.         }
  24.     }
  25. }
  26. int main()
  27. {
  28.     int i,n,a[MAX];
  29.     while(1){
  30.         if(scanf("%d",&a[i])==0){
  31.             break;
  32.         }
  33.         i++;
  34.     }
  35.     n=i;
  36.     for(i=0;i<n;i++){
  37.         a[i]=poramni(a[i]);
  38.     }
  39.     sort(a,n);
  40.     if(n<5){
  41.         for(i=0;i<n;i++)
  42.             printf("%d ",a[i]);
  43.     }
  44.     else{
  45.         for(i=0;i<5;i++)
  46.             printf("%d ",a[i]);
  47.     }
  48.     return 0;
  49. }
  50.  
  51. 2. Цезар
  52.  
  53. #include <stdio.h>
  54. #include <stdlib.h>
  55. #include <math.h>
  56. #include <ctype.h>
  57. #include <string.h>
  58. #define MAX 80
  59. void pomestuvanje(char *a, int x){
  60.     if(*a==0)return;
  61.     if(*a >= 'A'&&*a <= 'Z'){
  62.         *a = 'A' + (*a + x-'A')%26;
  63.     }
  64.     if(*a>='a'&&*a<='z'){
  65.         *a='a'+(*a+x-'a')%26;
  66.     }
  67.     a++;
  68.     pomestuvanje(a,x);
  69. }
  70. int main()
  71. {
  72.     char a[MAX];
  73.     int i,n,x;
  74.     scanf("%d%d",&n,&x);
  75.     for(i=0;i<n+1;i++){
  76.         gets(a);
  77.         pomestuvanje(a,x);
  78.         puts(a);
  79.     }
  80.     return 0;
  81. }
  82.  
  83. 3. Трансформација на матрица
  84.  
  85. #include <stdio.h>
  86. #define MAX 100
  87. int main()
  88. {
  89.     int i,j,n;
  90.     float a[MAX][MAX],x=0.0,y=0.0;
  91.     scanf("%d",&n);
  92.     for(i=0;i<n;i++){
  93.         for(j=0;j<n;j++){
  94.             scanf("%f",&a[i][j]);
  95.             if(i>j){
  96.                 x+=a[i][j];            
  97.             }
  98.             if(i+j>n-1){
  99.                 y+=a[i][j];            
  100.             }
  101.         }
  102.     }
  103.     for(i=0;i<n;i++){
  104.         for(j=0;j<n;j++){
  105.             a[i][j]=0;
  106.             if(i==j){
  107.                 a[i][j]=x;
  108.             }
  109.             if(i+j==n-1){
  110.                 a[i][j]=y;             
  111.             }
  112.             if(n%2!=0){
  113.                 if(i==n/2&&j==n/2){
  114.                     a[i][j]=x+y;
  115.                 }
  116.             }
  117.         }
  118.     }
  119.     for(i=0;i<n;i++){
  120.         for(j=0;j<n;j++){
  121.             printf("%.1f ",a[i][j]);
  122.         }
  123.         printf("\n");
  124.     }
  125.     return 0;
  126. }
  127.  
  128. 4. Линии
  129.  
  130. #include <stdio.h>
  131. #define MAX 100
  132. int main()
  133. {
  134.     int m,n,a[MAX][MAX],i,j,br=0;
  135.     scanf("%d%d",&m,&n);
  136.     for(i=0;i<m;i++){
  137.         for(j=0;j<n;j++){
  138.             scanf("%d",&a[i][j]);
  139.         }
  140.     }
  141.     for(i=0;i<m;i++){
  142.         for(j=0;j<n;j++){
  143.             if(a[i][j]==1&&a[i][j+1]==1 && a[i][j+2]==1){
  144.                 br++;
  145.                 break;
  146.             }
  147.         }
  148.     }
  149.     for(j=0;j<n;j++){
  150.         for(i=0;i<m;i++){
  151.             if(a[i][j]==1 && a[i+1][j]==1 && a[i+2][j]==1){
  152.                 br++;
  153.                 break;
  154.             }
  155.         }
  156.     }
  157.     printf("%d",br);
  158.     return 0;
  159. }
  160.  
  161. 5. Најдолг ред
  162.  
  163. #include <stdio.h>
  164. #include <stdlib.h>
  165. #include <string.h>
  166. #include <ctype.h>
  167. // ne menuvaj ovde
  168. void wtf() {
  169.     FILE *f = fopen("dat.txt", "w");
  170.     char c;
  171.     while((c = getchar()) != EOF) {
  172.         fputc(c, f);
  173.     }
  174.     fclose(f);
  175. }
  176.  
  177. int main() {
  178.     wtf();
  179.     // vasiot kod ovde
  180.    
  181.     FILE *fin=fopen("dat.txt","r");
  182.     char red[100],najgolemred[100];
  183.     int i,len,prvaflag=1,maxznaci=0,znaci=0,cifri=0,prvacifra=0,poslednacifra=0;
  184.     while(fgets(red,100,fin)!=NULL){
  185.         znaci=0;
  186.         cifri=0;
  187.         prvacifra=0;
  188.         poslednacifra=0;
  189.         prvaflag=1;
  190.         for(i=0;i<strlen(red);i++){
  191.             znaci++;
  192.             if(isdigit(red[i])){
  193.                 if(prvaflag==1){
  194.                     prvaflag=0;
  195.                     prvacifra=i;
  196.                     cifri++;
  197.                     continue;
  198.                 }
  199.                 else
  200.                 {
  201.                     cifri++;
  202.                     poslednacifra=i;
  203.                 }
  204.             }
  205.             if(znaci>=maxznaci&&cifri>=2){
  206.                 maxznaci=znaci;
  207.                 strncpy(najgolemred,red+prvacifra,poslednacifra-prvacifra+1);      
  208.             }
  209.         }
  210.     }    
  211.     puts(najgolemred);
  212.     return 0;
  213. }
  214.  
  215. 6. Датотека со бројки
  216.  
  217. #include <stdio.h>
  218. #include <string.h>
  219.  
  220. //ne menuvaj!
  221. void wtf() {
  222.     FILE *f = fopen("broevi.txt", "w");
  223.     char c;
  224.     while((c = getchar()) != EOF) {
  225.         fputc(c, f);
  226.     }
  227.     fclose(f);
  228. }
  229.  
  230. int main()
  231. {
  232.     wtf();
  233.  
  234.     FILE *f=fopen("broevi.txt","r");
  235.  
  236.     // vashiot kod ovde
  237.  
  238.     int max,first,n,naj,c,tmp,maxi;
  239.  
  240.     while(1)
  241.     {
  242.         fscanf(f,"%d",&n);
  243.  
  244.         if(!n)  break;
  245.  
  246.         max=0;
  247.  
  248.         while(n)
  249.         {
  250.             n--;
  251.             fscanf(f,"%d",&c);
  252.             tmp=c;
  253.             while(c>9)
  254.             {
  255.                 naj=c%10;
  256.                 c/=10;
  257.             }
  258.             if(c>max)
  259.             {
  260.                 max=c;
  261.                 maxi=tmp;
  262.             }
  263.         }
  264.         printf("%d\n",maxi);
  265.     }
  266. }
  267.  
  268. 7. Задача 1
  269.  
  270. #include <stdio.h>
  271. #define MAX 100
  272. int sum_pos(int *a, int ind, int n){
  273.     if(ind>n)return 0;
  274.     int i,zbir=0;
  275.     for(i=ind;i<n;i++)
  276.         zbir+=*(a+i);  
  277.     return zbir;
  278. }
  279. int main()
  280. {
  281.     int i,n,ind=0;
  282.     int a[MAX];
  283.     scanf("%d",&n);
  284.     for(i=0;i<n;i++){
  285.         scanf("%d",&*(a+i));
  286.     }
  287.     scanf("%d",&ind);
  288.     printf("%d",sum_pos(a,ind,n));
  289.     return 0;
  290. }
  291.  
  292. 8. Задача 2
  293.  
  294. #include <stdio.h>
  295. #include <string.h>
  296. #include <ctype.h>
  297. int main()
  298. {
  299.     int i,j,i1,j1,m,n,kv1=0,kv2=0,kv3=0,kv4=0,a[100][100];
  300.     scanf("%d%d",&m,&n);
  301.     for(i=0;i<m;i++){
  302.         for(j=0;j<n;j++){
  303.             scanf("%d",&a[i][j]);
  304.         }
  305.     }
  306.     scanf("%d%d",&i1,&j1);
  307.     for(i=0;i<i1;i++){
  308.         for(j=j1;j<n;j++){
  309.             kv1+=a[i][j];
  310.         }
  311.     }
  312.     for(i=0;i<i1;i++){
  313.         for(j=0;j<j1;j++){
  314.             kv2+=a[i][j];
  315.         }
  316.     }
  317.     for(i=i1;i<m;i++){
  318.         for(j=0;j<j1;j++){
  319.             kv3+=a[i][j];
  320.         }
  321.     }
  322.     for(i=i1;i<m;i++){
  323.         for(j=j1;j<n;j++){
  324.             kv4+=a[i][j];
  325.         }
  326.     }
  327.     printf("%d %d %d %d",kv1,kv2,kv3,kv4);
  328.     return 0;
  329. }
  330.  
  331. 9. Задача 3
  332.  
  333. #include <stdio.h>
  334.  
  335. // ne menuvaj ovde
  336. void wf() {
  337.     FILE *f = fopen("livce.txt", "w");
  338.     char c;
  339.     while((c = getchar()) != '#') {
  340.         fputc(c, f);
  341.     }
  342.     fclose(f);
  343. }
  344.  
  345. int main() {
  346.     wf();
  347.     // vasiot kod pocnuva od ovde
  348.  
  349.     FILE *f=fopen("livce.txt", "r");
  350.     int uplata,tip,maxtip,d=1;
  351.     char cd[11],maxcd[11];
  352.     float maxkf,kf,zbirkf;
  353.     fscanf(f,"%d",&uplata);
  354.     zbirkf=uplata;
  355.     while(fscanf(f,"%s%d%f",&cd,&tip,&kf)!=EOF){
  356.         if(d==1){
  357.             strcpy(maxcd,cd);
  358.             maxtip=tip;
  359.             maxkf=kf;
  360.             d=0;
  361.         }
  362.         zbirkf=zbirkf*kf;
  363.         if(kf>maxkf){
  364.             strcpy(maxcd,cd);
  365.             maxtip=tip;
  366.             maxkf=kf;
  367.         }
  368.     }
  369.     printf("%s %d %.2f\n",maxcd,maxtip,maxkf);
  370.     printf("%.2f",zbirkf);
  371.     return 0;
  372. }
  373.  
  374. 10. Непрекината дропка А
  375.  
  376. #include <stdio.h>
  377. float dropka(int a[],int i, int n){
  378.     if(i==n-1)
  379.         return a[i];
  380.     else
  381.         return a[i]+1/dropka(a,i+1,n);
  382. }
  383. int main()
  384. {
  385.     int i,a[100],n;
  386.     scanf("%d",&n);
  387.     for(i=0;i<n;i++)
  388.         scanf("%d",&a[i]);
  389.     printf("%f",dropka(a,0,n));
  390.     return 0;
  391. }
  392.  
  393. 11. Премести блок А
  394.  
  395. #include <stdio.h>
  396. #include <string.h>
  397. int main()
  398. {
  399.     int i,j,n,a[100][100];
  400.     scanf("%d",&n);
  401.     for(i=0;i<n;i++){
  402.         for(j=0;j<n*2;j++){
  403.             scanf("%d",&a[i][j]);
  404.         }
  405.     }
  406.     for(i=0;i<n;i++){
  407.         for(j=0;j<n;j++){
  408.             printf("%d ",a[i][j]);
  409.         }
  410.         printf("\n");
  411.     }
  412.     for(i=0;i<n;i++){
  413.         for(j=n;j<n*2;j++){
  414.             printf("%d ",a[i][j]);
  415.         }
  416.         printf("\n");
  417.     }
  418.     return 0;
  419. }
  420.  
  421. 12. Подредени цифри
  422.  
  423. #include <stdio.h>
  424. #include <string.h>
  425. #include <ctype.h>
  426. #define MAX 100
  427.  
  428. //ne menuvaj!
  429. void wtf() {
  430.     FILE *f = fopen("input.txt", "w");
  431.     char c;
  432.     while((c = getchar()) != EOF) {
  433.         fputc(c, f);
  434.     }
  435.     fclose(f);
  436. }
  437.  
  438. int main() {
  439.     wtf();
  440.    
  441.     // vashiot kod ovde
  442.    
  443.     FILE *f=fopen("input.txt", "r");
  444.     char a[100];
  445.     int i,j,br=0,b[100],tmp=0;
  446.     while((fgets(a,100,f))!=NULL){
  447.         for(i=0,j=0;i<strlen(a);i++){
  448.             if(isdigit(a[i])){
  449.                 b[j]=a[i]-'0';
  450.                 br++;
  451.                 j++;
  452.             }
  453.         }
  454.         printf("%d:",br);
  455.         for(i=0;i<br-1;i++){
  456.             for(j=i+1;j<br;j++){
  457.                 if(b[i]>b[j]){
  458.                     tmp=b[i];
  459.                     b[i]=b[j];
  460.                     b[j]=tmp;
  461.                 }
  462.             }
  463.         }
  464.         for(i=0;i<br;i++)
  465.         printf("%d",b[i]);
  466.         printf("\n");
  467.         br=0;
  468.     }
  469.     return 0;
  470. }
  471.  
  472. 13. Рекурзија 1
  473.  
  474. #include <stdio.h>
  475. int max(int a){
  476.     if(a<10)return a;
  477.     int maks=max(a/10);
  478.     if(a%10>maks)
  479.         return a%10;
  480.     else return maks;
  481.    
  482. }
  483. int main()
  484. {
  485.     int i,j,broj;
  486.     while(scanf("%d",&broj)){
  487.         printf("%d\n",max(broj));
  488.     }
  489.     return 0;
  490. }
  491.  
  492. 14. Праг 1
  493.  
  494. #include <stdio.h>
  495. int main()
  496. {
  497.     int i,j,x,m,n,a[100][100],zbir=0;
  498.     scanf("%d%d%d",&x,&m,&n);
  499.     for(i=0;i<m;i++){
  500.         for(j=0;j<n;j++){
  501.             scanf("%d",&a[i][j]);
  502.             zbir+=a[i][j];
  503.             if(j==n-1){
  504.                 for(j=0;j<n;j++){
  505.                     if(zbir>x)
  506.                         a[i][j]=1;
  507.                     else if(zbir<x)
  508.                         a[i][j]=-1;
  509.                     else if(zbir==x)
  510.                         a[i][j]=0;
  511.                 }
  512.                 zbir=0;
  513.             }
  514.         }
  515.     }
  516.     for(i=0;i<m;i++){
  517.         for(j=0;j<n;j++){
  518.             printf("%d ",a[i][j]);
  519.         }
  520.         printf("\n");
  521.     }
  522.     return 0;
  523. }
  524.  
  525. 15. Податоци
  526.  
  527. #include <stdio.h>
  528. #include <string.h>
  529. #include <stdlib.h>
  530. // ne menuvaj ovde
  531. void wtf() {
  532.     FILE *f = fopen("podatoci.txt", "w");
  533.     char c;
  534.     while((c = getchar()) != '#') {
  535.         fputc(c, f);
  536.     }
  537.     fclose(f);
  538. }
  539.  
  540. int main() {
  541.     wtf();
  542.     getchar();
  543.     // vasiot kod ovde
  544.     char a[80],b[80],z1,z2;
  545.     int len,j,k;
  546.     FILE *f=fopen("podatoci.txt", "r");
  547.     z1=getchar();
  548.     z2=getchar();
  549.     while((fgets(a,80,f))!=NULL){
  550.         len=strlen(a);
  551.         for(int i=0;i<len;i++){
  552.             if(a[i]==z1){
  553.                 for(j=i+1,k=0;j<len;j++,k++){
  554.                     if(a[j]==z2){
  555.                         break;
  556.                     }
  557.                     b[k]=a[j];
  558.                 }
  559.                 break;
  560.             }
  561.         }
  562.         puts(b);
  563.         for(int i=0;i<len;i++)
  564.         b[i]='\0';
  565.     }
  566.     fclose(f);
  567.     return 0;
  568. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement