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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 22:59     C/C++ Использование функций, использование break #1
Здравствуйте. Не знал как назвать тему, боялся что, если назову "КАК ЭТО РАБОТАЕТ?" то её удалят.
Пишу программу для вычисления длинных целых чисел. Целые числа из строк считал в массивы в обратном порядке (т.е. число 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. Хотя это должно быть не так. Почему это происходит? Что я делаю не так?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2012, 22:59     C/C++ Использование функций, использование break
Посмотрите здесь:

C++ Использование функций.
C++ Использование функций
Использование функций C++
Использование функций C++
C++ Использование функций
Использование функций (С++) C++
Использование функций. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:06     C/C++ Использование функций, использование break #2
Не удалят, имхо.
if принимает в себя true\false. Вы же в условии присваиваете. Может необходимо сделать:
C++
1
if (size1 == size2) break;
?
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:29  [ТС]     C/C++ Использование функций, использование break #3
Сонный идиот!
Спасибо!
Такая частая ошибка и... ой... позор ))
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16944 / 5349 / 329
Регистрация: 30.03.2009
Сообщений: 14,384
Записей в блоге: 26
22.06.2012, 23:36     C/C++ Использование функций, использование break #4
Цитата Сообщение от Alendorff Посмотреть сообщение
Такая частая ошибка и... ой... позор ))
Нужно уметь читать предупреждения компилятора, и тогда подобных проблем не будет
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:38  [ТС]     C/C++ Использование функций, использование break #5
Использую g++ сейчас. О каких предупреждениях идёт речь? )
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16944 / 5349 / 329
Регистрация: 30.03.2009
Сообщений: 14,384
Записей в блоге: 26
22.06.2012, 23:46     C/C++ Использование функций, использование break #6
Цитата Сообщение от Alendorff Посмотреть сообщение
Использую g++ сейчас. О каких предупреждениях идёт речь? )
Думал, что у тебя IDE. Тогда приучи себя при компиляции подавать дополнительную опцию -Wall
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:48     C/C++ Использование функций, использование break #7
Отличная рекомендация, однако с точки зрения таких ошибок IDE намного предпочтительнее, да и зачем набивать себе шишки, когда можно делать то же самое, но с гораздо бОльшим комфортом?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16944 / 5349 / 329
Регистрация: 30.03.2009
Сообщений: 14,384
Записей в блоге: 26
22.06.2012, 23:51     C/C++ Использование функций, использование break #8
Цитата Сообщение от zulkis Посмотреть сообщение
однако с точки зрения таких ошибок IDE намного предпочтительнее
Чем предпочтительнее? В IDE просто по умолчанию выставлен широкий набор опций предупреждения. При работе с компилятором напрямую можно подавать всё то же самое
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
22.06.2012, 23:53     C/C++ Использование функций, использование break #9
Тем, что такие предупреждения(ошибки) Вам подсветят, объяснят, и еще предложат поправить. И все это WYSIWYG.
И проблемы "сонный - несонный" не будет.
Alendorff
0 / 0 / 0
Регистрация: 25.01.2012
Сообщений: 49
22.06.2012, 23:56  [ТС]     C/C++ Использование функций, использование break #10
Проверил -Wall Хорошая вещь.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16944 / 5349 / 329
Регистрация: 30.03.2009
Сообщений: 14,384
Записей в блоге: 26
23.06.2012, 00:09     C/C++ Использование функций, использование break #11
Цитата Сообщение от zulkis Посмотреть сообщение
Тем, что такие предупреждения(ошибки) Вам подсветят, объяснят, и еще предложат поправить. И все это WYSIWYG.
И проблемы "сонный - несонный" не будет.
Ну насчёт подсветят - это и без IDE подсветят, а насчёт предложат исправить - пока такого ни разу не видел. Да и главное в том, что уведомить о предупреждении, а не в том, обычным текстом это сказать или с фанфарами и салютом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2012, 00:19     C/C++ Использование функций, использование break
Еще ссылки по теме:

Использование функций C++
Использование функций C++
Использование функций C++
Использование break C++
Заменить break на использование булевой переменной C++

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

Или воспользуйтесь поиском по форуму:
zulkis
 Аватар для zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
23.06.2012, 00:19     C/C++ Использование функций, использование break #12
Я работаю в последнее время используя XCode, и хотя он полон багов, функция распознавания что в if подсунули не то, и, как вариант, это нужно исправить - там есть.
Абсолютно согласен, что важен конечный результат, но насчет данного конкретного случая - уже вопрос о "вкусовых качествах фломастера".
Yandex
Объявления
23.06.2012, 00:19     C/C++ Использование функций, использование break
Ответ Создать тему
Опции темы

Текущее время: 13:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru