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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
#1

Глюк gcc? - C++

04.10.2013, 18:06. Просмотров 262. Ответов 4
Метки нет (Все метки)

Компилируя программу в gcc, выводит от части неверный ответ. В code::blocks все в порядке. Как это понимать?
Программа выполняет сдвиг массива: 45, 88, 71, 31, 72, 55, 64, 81, 99, 10. При введенном шаге - 1, массив должен принять вид: 10, 45, 88, 71, 31, 72, 55, 64, 81, 99. Но в gcc это не так.

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
#include <stdio.h>
 
#define SIZE 10
 
int main()
{
    int a[SIZE] = {45, 88, 71, 31, 72, 55, 64, 81, 99, 10};
    int buff, i, j;
    int step;
 
    for(i = 0; i <= SIZE - 1; i++)
    {
        printf("%5d", a[i]);
    }
    printf("\nEnter the pitch shift: ");
    scanf("%d", &step);
 
    for(j = 1; j <= step; j++)
    {
    for (i = 0; i <= SIZE - 1; i++)
        {
            buff = a[SIZE - i];
            a[SIZE - i] = a[SIZE - (i + 1)];
            a[SIZE - (i + 1)] = buff;
        }
    }
 
    for(i = 0; i <= SIZE - 1; i++)
    {
        printf("%5d", a[i]);
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 18:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Глюк gcc? (C++):

Глюк печатания и глюк порчи константы - C++
Дамы и господа! Я столкнулся с двумя глюками, которые не нашёл в списке распространённых ошибок. 1) При попытке распечатать массив...

gcc в c++ VS - C++
void MakeStrRef(RCString* sref,char* data){ asm(&quot;pushl %%eax\n&quot; &quot;call %%edx&quot; : ...

Gcc и c++ - C++
Доброго времени суток. Начну с предисловия. Я всегда писал на C++ под винду и в линукс не совался. Сейчас, я выполняю задание(тестовое) и...

Компиляция (gcc) - C++
Добрый вечер! После компиляции текстовый файл становится вдруг двоичным, как следствие его невозможно открыть для исправлений. Почему? ...

g++/gcc не компилирует - C++
есть С++ код #include &lt;iostream&gt; int main(){ std::cout &lt;&lt; &quot;hello ,world!&quot;; } запускаю компилятор и он ничего не...

gcc update - C++
как обновить gcc? Нужно качать новую версию и заново устанавливать или есть какая-то команда, чтобы сделать это?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
04.10.2013, 18:26 #2
Цитата Сообщение от Ryuk Посмотреть сообщение
Компилируя программу в gcc, выводит от части неверный ответ. В code::blocks все в порядке
Как вот это понимать? gcc - это компилятор. code::blocks это IDE. Причем эта самая IDE использует gcc в качестве компилятора.

По поводу вопроса: где, по Вашему, число 10 ( в случае когда, как Вы сказали, вводите 1 ) записывается в начало массива?
0
Croessmah
Эксперт CЭксперт С++
13214 / 7485 / 843
Регистрация: 27.09.2012
Сообщений: 18,401
Записей в блоге: 3
Завершенные тесты: 1
04.10.2013, 18:33 #3
C++
1
2
3
4
    for (i = 0; i <= SIZE - 1; i++)
        {
            buff = a[SIZE - i];
            a[SIZE - i] = a[SIZE - (i + 1)];
SIZE - 0 == SIZE
Следовательно имеем выход за пределы массива a[SIZE] = ...
1
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
04.10.2013, 18:36  [ТС] #4
Toshkarik, Почему результаты разные? В ide тот что нужен, в mingw нет.

Добавлено через 56 секунд
Croessmah, да, вот. Я это тоже видел, но он выполняется все равно правильно, думал что это не влияет
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
04.10.2013, 18:43 #5
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему результаты разные? В ide тот что нужен, в mingw нет.
Потому что выход за пределы массива это UB. Результат может различаться от версии к версии ( даже релизной ), а у Вас, скорей всего, как раз разные версии mingw.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 18:43
Привет! Вот еще темы с ответами:

Компиляция gcc - C++
Подскажите как в VS скомпилировать программу с помощью компилятора gcc

gcc компиляция - C++
Проблема возникла при компиляции проекта code::block. При build and run все работает, в папке bin проекта появляется .exe Но...

GotoXY в GCC - C++
ДОБРОГО ВРЕМЕНИ СУТОК !!! Я использую GCC и мне нужно использовать функцию GotoXY. В GCC нет библиотеки conio.h. Прошу дать код...

gcc VS DEV-C++ 4.9.9.2 - C++
Люди!! Срочно нужны знающие люди по данному вопросу.Только сейчас узнал,что вся практика будет в gcc...... Какие отличия вообще между ними...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.10.2013, 18:43
Ответ Создать тему
Опции темы

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