Soulkeeper
Новичок
|
//#include <stdafx.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #define MAX 100 struct numb{ int x; struct numb *next; struct numb *last; }; int del(char arr[MAX],char per[4],int i); int del(char arr[MAX],char p1[4],int i) { char p [2]; p[0]=arr; p[1]='\0'; strcat(p1,p); return(0); } int main(void){ struct numb *head=NULL; struct numb *tale=NULL; struct numb *current,*prev,*cur; char arr[MAX]; char arr_1[MAX]; char arr2[MAX]; char *mas; char *mas2; char arr_2[MAX]; char per[4]=""; char pust[4]=""; int n,n2,i,j,len,len2; int str,y,z; clrscr(); printf("vvedite pervoe chislo:\n"); scanf("%s",arr_1); len = strlen(arr_1); printf("vvedite vtoroe chislo:\n"); scanf("%s",arr_2); len2 = strlen(arr_2); if(len>len2) { for(i=0;i<=len;i++) arr=arr_1; for(j=0;j<=len2;j++) arr2[j]=arr_2[j]; n=len-1; n2=len2-1; } else { for(i=0;i<=len2;i++) arr=arr_2; for(j=0;j<=len;j++) arr2[j]=arr_1[j]; n=len2-1; n2=len-1; } while(n>=0){ current=(struct numb *) malloc(sizeof(struct numb)); if(head==NULL){ head=current; current->last=NULL; } else{ prev->next=current; current->last=prev; } current->next=NULL; if(n<3 && n>=0){ for(i=0;i<=n;i++){ del(arr,per,i); } } else{ for(i=n-3;i<=n;i++){ del(arr,per,i); } } current->x=atoi(per); prev=current; n=n-4; *per=*pust; } tale=prev; current=head; while(n2>=0){ if(n2<3 && n2>=0){ for(i=0;i<=n2;i++){ del(arr2,per,i); } } else{ for(i=n2-3;i<=n2;i++){ del(arr2,per,i); } } y=atoi(per); if((current->x+y)>=10000){ current->x=((current->x+y)-10000); if(n2<=4){ cur=(struct numb *) malloc(sizeof(struct numb)); cur->next=NULL; cur->x=1; current->next=cur; cur->last=current; tale=cur; } else{ cur=current->next; cur->x=cur->x+1; } } else{ current->x=current->x+y; } current=current->next; n2=n2-4; *per=*pust; } current=tale; printf("summa chisel ="); while(current!=NULL){ printf("%d",current->x); current=current->last; } getch(); return(0); } Видите эту хренотень? Эт моя прога. Она суммирует 2 числа, спросите нахрена такой код для такой задачки? ХЗ! надо и все. Суть проблемы, суммирует 2 числа любые идеально, кроме чисел 1 из которых состояит из единиц, а второе из девяток, причем если в числе менее 5 знаков, считает идеально, если более то врет 11111+99999=21110 получается. 111111+999999=211110 и тп 999999999+1=10 У препода бзык, хочет штоб исправил Помогите с сессией кто в танке, где ошибка. PS код кривой, у автора руки из Ж*п*, читается плохо
|