Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

(С++)Помогите разобраться с кодом

14K
15 мая 2007 года
Krazist
60 / / 13.03.2007
С комментариями я разобрался это глупо было писать на форум из за маленькой загвоздочки которая возникла ...
Самая главная проблема у меня вот в чём нужно изменить эту прогу написав функцию которая добавляет число в стек из строки символов... [Помогите]
т.е как я понял где то в тексте программы должен осуществляться переход из char в int.

Я думаю что сумма цифр может быть больше 9, то тогда мы определяем дополнительный бит и сложение будем производить с этим битом.
Вместе с подпрограммой добавления элемента к списку и подпрограммой вывода элементов списка, написанных рекурсивно, эта подпрограмма сложения имеет вид:


Код:
//----------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#pragma hdrstop

typedef struct st
{
   int info;
   struct st *next;
} node;
node *s1 = 0, *s2 = 0, *s3 =0;

node *insert( node *root, int x )
{
   if (root==0)
   {
      root = (node *) malloc (sizeof(node));
      root->info = x;
      root->next = 0;
   } else
   root->next = insert ( root-> next, x );
   return root;
}

void display( node *p )
{
   if ( p != 0 )
   {
      display ( p->next );
      printf("%-3d", p->info);
   }
}

node *add( node *s, node *t )
{
   int x, c=0 ; node* res=0 ;
   while ((s!=0) || (t!=0))
   {
      if (s == 0) x = t->info + c;
      else if (t==0) x = s->info +c ;
      else x = s->info+t->info+c ;
     
      if (x > 9){ x-=10; c=1;}
      else c=0;
      res = insert( res,x );

      if(s!=0) s = s->next;
      if(t!=0) t = t->next;
   }
   if (c == 1) res = insert( res, 1 );
   return res;
}

int main(int argc, char* argv[])
{
clrscr() ; //Очистка экрана
printf("\n\n");
   printf("Pervoe chislo zapisannoe v stek:\n\n ");
   s1 = insert (s1,2);
   s1 = insert (s1,6);
   s1 = insert (s1,4);
   display(s1);
   printf("\n\nVtoroe chislo zapisannoe v stek:\n\n ");
   s2 = insert (s2,6);
   s2 = insert (s2,5);
   s2 = insert (s2,5);
   display(s2);
   printf("\n");
   printf("\n\nRezult slogenia dvyx chisel v steke:\n\n ");
   display( add(s1,s2));
   getchar();
}
//----------------------------------------------------------------------
14K
16 мая 2007 года
Krazist
60 / / 13.03.2007
С комментариями я разобрался это глупо было писать на форум из за маленькой загвоздочки которая возникла ...:rolleyes:
Самая главная проблема у меня вот в чём нужно изменить эту прогу написав функцию которая добавляет число в стек из строки символов... [Помогите]:confused:
т.е как я понял где то в тексте программы должен осуществляться переход из char в int.
14K
17 мая 2007 года
Krazist
60 / / 13.03.2007
Возникла загвоздка переделайте программу кто может и знает как !
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог