Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 25.01.2012
Сообщений: 49
1

Использование функций, использование break

22.06.2012, 22:59. Просмотров 1456. Ответов 11
Метки нет (Все метки)


Здравствуйте. Не знал как назвать тему, боялся что, если назову "КАК ЭТО РАБОТАЕТ?" то её удалят.
Пишу программу для вычисления длинных целых чисел. Целые числа из строк считал в массивы в обратном порядке (т.е. число 123 массив a[0]=3 a[1]=2 a[2]=1)
У меня есть функция, в которую я передаю 2 массива по ссылкам и их размерность + массив куда записать результат. Но это всё мало относится к проблеме... в общем, вот код:


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
void sum(int *a, int size1, int *b, int size2, int *c, int &size3){
 
 
int i=0;
int temp=0;
if (size1>=size2){
do{
  while(i<size2){
  temp=temp+a[i]+b[i];
  c[i]=temp%10;
  temp=temp/10;
  i++;
  }
if (size1=size2) break; //!!!!!!!!!!!!!!!!!!!!!!!!!!!!
temp=temp+a[i];
c[i]=temp%10;
temp=temp/10;
i++;
}
while ((temp!=0) || (i<size1));
}
else
{
}
 
size3=i;
cout<<size1<<endl;
 
cout<<size2<<endl;
for(int i=0; i<size3; i++){
 cout<<c[size3-1-i];
}
 cout<<endl;
}
Если закомментировать условие рядом с которым комментарий с восклицательными знаками, то size1 и size2 после выхода из циклов будут правильными, как я их ввёл. Но если не комментировать, то size1 всегда равно size2. Хотя это должно быть не так. Почему это происходит? Что я делаю не так?
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2012, 22:59
Ответы с готовыми решениями:

Работа с двумерными числовыми массивами. Использование указателей. Использование функций пользователя.
Помогите пожалуйста!!!!!!! Сделать три варианта: первый вариант – передача данных между...

Использование break
using namespace std; void print_out(int n); int main(){ int n; cout&lt;&lt;&quot;введите число...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг...

Заменить break на использование булевой переменной
Здравствуйте. Собственно нужно представить кусок данной программы С++ через булеву переменную (...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы C++ разработчиков
11
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:06 2
Не удалят, имхо.
if принимает в себя true\false. Вы же в условии присваиваете. Может необходимо сделать:
C++
1
if (size1 == size2) break;
?
1
0 / 0 / 1
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:29  [ТС] 3
Сонный идиот!
Спасибо!
Такая частая ошибка и... ой... позор ))
0
Evg
Эксперт CАвтор FAQ
21153 / 8169 / 628
Регистрация: 30.03.2009
Сообщений: 22,469
Записей в блоге: 30
22.06.2012, 23:36 4
Цитата Сообщение от Alendorff Посмотреть сообщение
Такая частая ошибка и... ой... позор ))
Нужно уметь читать предупреждения компилятора, и тогда подобных проблем не будет
0
0 / 0 / 1
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:38  [ТС] 5
Использую g++ сейчас. О каких предупреждениях идёт речь? )
0
Evg
Эксперт CАвтор FAQ
21153 / 8169 / 628
Регистрация: 30.03.2009
Сообщений: 22,469
Записей в блоге: 30
22.06.2012, 23:46 6
Цитата Сообщение от Alendorff Посмотреть сообщение
Использую g++ сейчас. О каких предупреждениях идёт речь? )
Думал, что у тебя IDE. Тогда приучи себя при компиляции подавать дополнительную опцию -Wall
1
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:48 7
Отличная рекомендация, однако с точки зрения таких ошибок IDE намного предпочтительнее, да и зачем набивать себе шишки, когда можно делать то же самое, но с гораздо бОльшим комфортом?
0
Evg
Эксперт CАвтор FAQ
21153 / 8169 / 628
Регистрация: 30.03.2009
Сообщений: 22,469
Записей в блоге: 30
22.06.2012, 23:51 8
Цитата Сообщение от zulkis Посмотреть сообщение
однако с точки зрения таких ошибок IDE намного предпочтительнее
Чем предпочтительнее? В IDE просто по умолчанию выставлен широкий набор опций предупреждения. При работе с компилятором напрямую можно подавать всё то же самое
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:53 9
Тем, что такие предупреждения(ошибки) Вам подсветят, объяснят, и еще предложат поправить. И все это WYSIWYG.
И проблемы "сонный - несонный" не будет.
0
0 / 0 / 1
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:56  [ТС] 10
Проверил -Wall Хорошая вещь.
0
Evg
Эксперт CАвтор FAQ
21153 / 8169 / 628
Регистрация: 30.03.2009
Сообщений: 22,469
Записей в блоге: 30
23.06.2012, 00:09 11
Цитата Сообщение от zulkis Посмотреть сообщение
Тем, что такие предупреждения(ошибки) Вам подсветят, объяснят, и еще предложат поправить. И все это WYSIWYG.
И проблемы "сонный - несонный" не будет.
Ну насчёт подсветят - это и без IDE подсветят, а насчёт предложат исправить - пока такого ни разу не видел. Да и главное в том, что уведомить о предупреждении, а не в том, обычным текстом это сказать или с фанфарами и салютом
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 00:19 12
Я работаю в последнее время используя XCode, и хотя он полон багов, функция распознавания что в if подсунули не то, и, как вариант, это нужно исправить - там есть.
Абсолютно согласен, что важен конечный результат, но насчет данного конкретного случая - уже вопрос о "вкусовых качествах фломастера".
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2012, 00:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Итерационные циклы,Определение и вызов функций,Использование библиотечных функций stdio.h
Помогите решить задания: 1.Дано натуральное число n. Найти разность между первой цифрой этого...

Использование функций (С++)
1)Написать функцию, возвращающую абсолютную величину числа. 2)Написать функцию, меняющую местами 2...

Использование функций
Всем доброго вечера Требуется помощь в решение задач по данной теме ибо я нахожусь в полном...

Использование функций
Очень нужна помощь. Помогите пожалуйста разобраться. Я уже не представляю что делать, подскажите...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.