Форум программистов, компьютерный форум CyberForum.ru

Сложение столбиком. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как перевести убывающий цикл из паскаля в C++? http://www.cyberforum.ru/cpp-beginners/thread286226.html
Не могу понять как перевести строчку кода из Pascal на C++. Подскажите пожалуйста For j:=n Downto (i+1) Do
C++ Подскажите, как считать из файла структуру Только начали работу с файлами на С. Поэтому пока что не совсем разобралась, что и куда. Struct notebook { char model; //наименование struct size { //габаритные размеры float x; float y; float z; }; float w; //вес http://www.cyberforum.ru/cpp-beginners/thread286225.html
C++ как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной?
как записать в переменную символьного типа (думерный массив) несколько строк, после инициализации этой переменной? тоесть при инициализации канает char a={"dfbsdb","dfvsdfv"} а если после инициализации записать, a={"dfbsdb","dfvsdfv"} то выдаёт ошибку! или я мб нетак записываю? подскажите в чём ошибка!!
C++ Перезаписать память начиная с указателя Bitmap[1] элементами начиная с указателя Bitmap[0]
Задан массив из 3 указателей Bitmap, по адресу Bitmap необходимо записать 480*640 элементов из массива Bitmap. В последнем цикле for выдает ошибку при i=2: Необработанное исключение в "0x004139be" в "Blue.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". int i=0; BYTE* Bitmap; //Выделяем память for (i=0; i<=2; Bitmap=(BYTE *)malloc(480*640*sizeof(BYTE)));
C++ Численное интегрирование(ошибка при расчете) http://www.cyberforum.ru/cpp-beginners/thread286174.html
Прога считает определенные интеграл на заданном отрезке. Пользователь вводит начало и конец отрезка (я ввожу 0.1 и 0.6 соответственно в связи с особенностью интегрирования функции), ну и понеслась. Ошибка возникает в 46 строчке при расчете I. Трейсил прогу, выяснил, что значение y почему то равно -9.2559631349317831e+061, хотя при заполнении массива y значение присваивается вполне нормально......
C++ Модульность программы Здравствуйте. У меня вопрос фундаментального характера, но что-то он у меня вызывал трудность. У меня есть приложение, которое выполняет некоторые действия: 1. Принятие данных из сети, 2. Обработка принятых данных, 3. Запись лога выполненых действий. Сейчас у меня все эти действия выполняются в одном исполняемом файле (.exe) подробнее

Показать сообщение отдельно
mrReptiloid
309 / 172 / 8
Регистрация: 30.04.2011
Сообщений: 1,312

Сложение столбиком. - C++

30.04.2011, 17:24. Просмотров 4235. Ответов 37
Метки (Все метки)

Привет всем!Я недавно начал изучать с++ и решил написать свою функцию сложения больших чисел т.е. длинную арифметику.Смысл не сложный.Мы считываем 2 числа в 2 строки в обратном порядке,получаем целочисленный тип каждого из них,складываем и записываем в 3 массив.Если результат выходит больше 9,то записываем в 3 строковую переменную <результат сложения>-10.И при следующем проходе цикла прибавляем единичку,которую записываем во флаговою переменную,а потом ее обнуляем.<-вот в этом и проблема,не хочет прибавлять эту флаговою переменную при следующем проходе цикла,ничего вообще ни прибавляет,а если изначально прибавлять к сложению единичку,то прибавляет к обеим слагаемым.Может что-то не так в цикле обратного отсета т.е. чтобы считывать с конца числа,как мы делаем это когда складываем в столбик..помогите.вот мой код:
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
#include <conio.h>
#include <stdio.h>
#include <iostream>
 
int main()
{
//Обьявляем три строковые переменные.
    char* str=(char*)malloc(5000);
    char* st=(char*)malloc(5000);
    char* s=(char*)malloc(5000);
    int sum;//Переменная для вычисления суммы.
    int x =0;//Переменная для цикла.
    int i;//Переменная для цикла.
    int str1;//Переменная целого типа для каждого элемента первого слагаемого.
    int flag=0;//Флаговая переменная,для перенесения единицы в старший десяток.
    int str2;//Переменная целого типа для каждого элемента второго слагаемого.
    scanf("%s", str);//Считываем первое число в 1 строку.
    scanf("%s", st);//Считываем второе число во 2 строку.
    //Определяем длину обеих строк и записываем это число в переменные.
    int sm = strlen(str);
    int sm2 = strlen(st);
    for (x = sm,flag; x > 0; x--) 
{
 
    str1=str[x]-'0';//Получаем целочисленный тип каждого элемента первой строки.
    str2=st[x]-'0';//Получаем целочисленный тип каждого элемента второй строки.
    sum=str1+str2+flag;//Складываем каждый элемент с конца.
    s[x] = sum + '0';//Записываем в каждый элемент третьего массива результат сложения sum.
    s[sm] = 0;
    flag=0;
    if(sum>9)//Если результат сложения каких либо двух элементов 2 слагаемых больше 9....
{
    flag=1;
 
    s[x] = sum-10 + '0';
    s[sm] = 0;
}
    }
        
printf ("Summa = %s", s);//Выводим результат.
_getch();
}
ps пишу в visual c++ 2008,хоть это не столь принципиально,но разница от билдера есть..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru