Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int main (void)
- {
- char str[] ="2031930420126523056203652032101365104313641631094+1134132134121245312521524133212132151321254";
- int velikost=strlen(str);
- int a1=0;
- for (int i=0;i<velikost;i++) {
- if (str[i]!='+' && str[i]!='-' && str[i]!='/' && str[i]!='*' )
- a1++;
- else break;
- }
- int a2=velikost-a1-1;
- char znak=str[a1];
- int max;
- if (a1>=a2) max=a1; else max=a2;
- ;
- int *cislo1;
- cislo1=(int*)malloc(max*sizeof(int));
- int *cislo2;
- cislo2=(int*)malloc(max*sizeof(int));
- int absh=abs(a1-a2);
- for (int i=0;i<absh;i++) {cislo1[i]=0; cislo2[i]=0;}
- if (a1==max) {
- for (int i=0;i<a1;i++) cislo1[i]=((int)(str[i]))-48;
- for (int i=a1+1;i<velikost;i++) cislo2[i-a1-1+absh]=((int)(str[i]))-48;
- }
- else {
- for (int i=0;i<a1;i++) cislo1[i+absh]=((int)(str[i]))-48;
- for (int i=a1+1;i<velikost;i++) cislo2[i-a1-1]=((int)(str[i]))-48;
- }
- int *vysledek;
- vysledek=(int*)malloc(2*max*sizeof(int));
- for (int i=0;i<2*max;i++) vysledek[i]=0;
- for (int i=0;i<max;i++) printf("%d",cislo1[i]);
- printf("\n%c\n",znak);
- for (int i=0;i<max;i++) printf("%d",cislo2[i]);
- printf("\n=\n");
- int prenos=0;
- //SCITANI
- if (znak=='+') {
- for(int i=max-1;i>=0;i--){
- vysledek[i+max]=vysledek[i+max]+cislo1[i]+cislo2[i];
- if (vysledek[i+max]>9) {
- prenos=vysledek[i+max]/10; vysledek[i+max]-=10; vysledek[i+max-1]+=prenos;}
- }
- }
- //SCITANI
- //VYPSANI VYSLEDKU
- int x=0;
- for (int i=0;i<2*max;i++) {
- if (x!=0 || vysledek[i]!=0) {
- printf("%d",vysledek[i]);x=1;}
- }
- //VYSPANI VYSLEDKU
- return 0;
- }
Add Comment
Please, Sign In to add comment