Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2010, 23:56   #1
rubakKa
Пользователь
 
Регистрация: 30.11.2010
Сообщений: 29
По умолчанию Сложение больших чисел, в чем ошибка?

Требуется сложить два числа не превышающих 10^100(10 в степени 100).
Вот код. В строке ввода: 2 3. В строке вывода: 2290528. В чем ошибка?

Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){ 
int N,l;
char str1[1000]; 
char str2[1000]; 
char str3[1000];
FILE *in,*out;
in=fopen("input.txt","r");
out=fopen("output.txt","w");
fscanf(in,"%d",str1); 
itoa(N,str1,10);
l=strlen(str1);
fscanf(in,"%d",str2);
itoa(N,str2,10); 
l=strlen(str2); 
for(int j=0;j<l;j++){ 
str3[j]=str1[j]+str2[j]+1;
if(str3[j]>=10)  
str3[j]=str3[j]; 
fprintf(out,"%d", str3); 
} 

fclose(in);
fclose(out);
}
rubakKa вне форума Ответить с цитированием
Старый 15.12.2010, 10:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не понял... А зачем в коде строки и файлы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2010, 13:00   #3
LeBron
Форумчанин
 
Регистрация: 10.10.2009
Сообщений: 680
По умолчанию

Цитата:
Сообщение от rubakKa Посмотреть сообщение
Код:
for(int j=0;j<l;j++){ 
str3[j]=str1[j]+str2[j]+1;
if(str3[j]>=10)  
str3[j]=str3[j];
Последняя строка вообще непонятна. А то что перед этим - надо прибавлять 1 только в тому случае, если был перенос в предыдущем разряде.

Код:
if(str3[j]>=10)  
str3[j]=str3[j];
вот в этом месте должна быть запись необходимости переноса.

Или я просто не понял самой реализации... В общем, никто этого через строки не пишет никогда.
LeBron вне форума Ответить с цитированием
Старый 15.12.2010, 13:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или я просто не понял самой реализации
Аналогично не понял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложение двух десятичных положительных чисел. целых чисел))) PEro_man Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 01.12.2010 12:40
Сложение больших чисел Plazma Общие вопросы C/C++ 0 27.11.2010 17:11
сложение больших чисел SacReD_89 Общие вопросы C/C++ 21 25.04.2010 16:42
реверс целых чисел на Си. подскажите, в чем ошибка. Kastet14 Помощь студентам 7 14.01.2010 18:08
С# Сложение больших чисел SL1CK Помощь студентам 4 23.11.2009 21:07