Guest User

Untitled

a guest
Apr 26th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main (void)
  5. {
  6.   char str[] ="2031930420126523056203652032101365104313641631094+1134132134121245312521524133212132151321254";
  7.   int velikost=strlen(str);
  8.  
  9.   int a1=0;
  10.   for (int i=0;i<velikost;i++) {
  11.      if (str[i]!='+' && str[i]!='-' && str[i]!='/' && str[i]!='*' )
  12.          a1++;
  13.      else break;
  14.   }
  15.  
  16. int a2=velikost-a1-1;
  17. char znak=str[a1];
  18.  
  19. int max;
  20. if (a1>=a2) max=a1; else max=a2;
  21. ;
  22. int *cislo1;
  23. cislo1=(int*)malloc(max*sizeof(int));
  24. int *cislo2;
  25. cislo2=(int*)malloc(max*sizeof(int));
  26.  
  27.  
  28.  
  29. int absh=abs(a1-a2);
  30.  
  31. for (int i=0;i<absh;i++) {cislo1[i]=0; cislo2[i]=0;}
  32.  
  33. if (a1==max) {
  34.     for (int i=0;i<a1;i++) cislo1[i]=((int)(str[i]))-48;
  35.     for (int i=a1+1;i<velikost;i++) cislo2[i-a1-1+absh]=((int)(str[i]))-48;
  36. }
  37. else {
  38.     for (int i=0;i<a1;i++) cislo1[i+absh]=((int)(str[i]))-48;
  39.         for (int i=a1+1;i<velikost;i++) cislo2[i-a1-1]=((int)(str[i]))-48;
  40. }
  41.  
  42. int *vysledek;
  43. vysledek=(int*)malloc(2*max*sizeof(int));
  44. for (int i=0;i<2*max;i++) vysledek[i]=0;
  45.  
  46. for (int i=0;i<max;i++) printf("%d",cislo1[i]);
  47. printf("\n%c\n",znak);
  48. for (int i=0;i<max;i++) printf("%d",cislo2[i]);
  49.  
  50.  
  51.  
  52. printf("\n=\n");
  53.  
  54.  
  55.  
  56.  
  57. int prenos=0;
  58.  
  59. //SCITANI
  60. if (znak=='+') {
  61.     for(int i=max-1;i>=0;i--){
  62.         vysledek[i+max]=vysledek[i+max]+cislo1[i]+cislo2[i];
  63.         if (vysledek[i+max]>9) {
  64.             prenos=vysledek[i+max]/10; vysledek[i+max]-=10; vysledek[i+max-1]+=prenos;}
  65.      }
  66. }
  67. //SCITANI
  68.  
  69.  
  70. //VYPSANI VYSLEDKU
  71. int x=0;
  72. for (int i=0;i<2*max;i++) {
  73.     if (x!=0 || vysledek[i]!=0) {
  74.         printf("%d",vysledek[i]);x=1;}
  75. }
  76. //VYSPANI VYSLEDKU
  77.  
  78.  
  79. return 0;
  80. }
Add Comment
Please, Sign In to add comment