Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Односвязный список, гдето простая ошибка.
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: paradise, KMA
  

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 код кривой, у автора руки из Ж*п*, читается плохо

Всего сообщений: 1 | Присоединился: январь 2010 | Отправлено: 13 янв. 2010 21:15 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com