Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 9

Сложение чисел ! недопуск на екзамен !

24.01.2010, 12:04. Показов 3932. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать функцию, которая позволяет сложить ( + ) два целых положительных числа, без ограничения на величину чисел.

Завтра нужно сдать, а то недопуск на экзамен, я набрасал прогу, вроде выводит результат, но что-то мне ,кажеться, я там нахомутал....
В общем нужно ваша помощь, гляньте что не так? (
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
char perevorot(char *x);
void main()
{  clrscr();
char a[100], b[100], Temp[100], f[100], *as, *bn; int x,c,v,len1,len2,k,i,one=0,pos=0;
cin>>a>>b;
 len1=strlen(a); len2=strlen(b); if (len1>len2) k=len1; else k=len2;
perevorot(a);
perevorot(b);
for(i=0;i<=k;i++)
{
*bn=b[i]; *as=a[i];
x=atoi(as); c=atoi(bn);
v=x+c+one;
if(i==k && v==0) k=k-1;
if(v>9) {one=1;v=v-10; f[i]=v; } else {f[i]=v; one=0; }
}
//perevorot(f);
i=k; pos=0;
while (i>=0)
{
Temp[pos]=f[i];
pos++;i--;
}
for(i=0;i<=k;i++)
f[i]=Temp[i];
for(i=0;i<=k;i++)
 cout<<(f[i]+0);
getch(); return;
}
char perevorot(char* x)
 {
char Temp[100], *as; int k, i,pos=0;
k=strlen(x);
i=k-1;
while (i>=0)
{
Temp[pos]=x[i];
pos++; i--;
}
for(i=0;i<k;i++)
x[i]=Temp[i];
return *x;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2010, 12:04
Ответы с готовыми решениями:

Showplus. Ошибка скрипта или недопуск с правами
Модуль Showplus не видит папку с изображениями (любую, находящуюся в папке &quot;images&quot;). Пытался создавать каждый раз для этого новую папку, а...

екзамен
К кількість балів отриманих студентом на екзамені. Виведіть цю оцінку словами : 1-погано, ......5-відмінно код на с++

Перевод чисел в двоичную систему счисления, сложение чисел в двоичной системе
Задание 7 Задания к работе 1. Перевести данное число из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы...

20
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
25.01.2010, 08:37
Студворк — интернет-сервис помощи студентам
medVet, вариант с исправленным недочетом вывода на экран:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <assert.h>
 
char* Sum(const char* first, const char* second)
{
  assert(first );
  assert(second);
 
  int first_len  = static_cast<int>(strlen(first ));
  int second_len = static_cast<int>(strlen(second));
  int sum_len    = (first_len > second_len ? first_len : second_len) + 1;
 
  char* sum = new char[sum_len + 1];
 
  sum[sum_len] = '\0';
 
  int first_index  = first_len  - 1;
  int second_index = second_len - 1;
  int sum_index    = sum_len    - 1;
 
  int rest = 0;
 
  while(first_index >= 0 && second_index >= 0){
    int tmp = (first[first_index] - static_cast<int>('0')) + 
      (second[second_index] - static_cast<int>('0')) + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --first_index;
    --second_index;
    --sum_index;
  }
 
  while(first_index >= 0){
    int tmp = first[first_index] - static_cast<int>('0') + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --first_index;
    --sum_index;
  }
 
  while(second_index >= 0){
    int tmp = second[second_index] - static_cast<int>('0') + rest;
 
    sum[sum_index] = static_cast<char>(tmp % 10) + '0';
 
    rest = tmp / 10;
 
    --second_index;
    --sum_index;
  }
 
  sum[sum_index] = static_cast<char>(rest) + '0';
 
  // Избавление от лишних нулей
  int first_non_zero_index = -1;
 
  for(int i = 0; i < sum_len; ++i)
    if(sum[i] != '0'){
      first_non_zero_index = i;
      break;
    }
 
  if(first_non_zero_index == 0)
    return sum;
 
  if(first_non_zero_index == - 1){
    delete [] sum;
 
    char* result = new char[2];
 
    result[0] = '0';
    result[1] = '\0';
 
    return result;
  }
 
  int result_len = sum_len - first_non_zero_index;
 
  char* result = new char[result_len + 1];
 
  for(int i = 0; i < result_len; ++i)
    result[i] = sum[i + first_non_zero_index];
 
  result[result_len] = '\0';
 
  delete [] sum;
 
  return result;
}
 
int main()
{
  char first[]  = "234";
  char second[] = "81";
 
  char* sum = Sum(first, second);
 
  std::cout << sum << std::endl;
 
  delete [] sum;
 
  return 0;
}
Протестируй все тщательно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.01.2010, 08:37

Написать программу которая выводит сумму чисел от a до b. Сложение чисел выполнять в процедуре
Где ошибка? #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; using namespace std; int Sum (int x, int y) { int S; ...

Перевод чисел в дополнительный код и сложение (вычитание) этих чисел в однобайтовом формате
Даны два числа Х и У в двоичной системе счисления. Нужно написать программу, которая переводила числа в дополнительный код и производило...

Вычислить сумму двух длинных бинарных чисел, используя сложение чисел в двоичной системе счисления
Задано положительное и отрицательное число в двоичной системе.Составить программу вычисления суммы этих чисел, используя сложения чисел в...

екзамен нужна Ваша
Добре утро, ребята. Сижу на екзамене осталось один вопрос и тот практический, нужна Ваша помощ. Есть задание. В введенному с клавиатуры...

после завтра екзамен!
и так условие трёх задач 1)найти мин и макс элементы массива А и расположить элементы между ними по убыванию; 2)найти суму А левой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru