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

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

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

Глюк gcc? - C++

04.10.2013, 18:06. Просмотров 260. Ответов 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]);
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 18:06     Глюк gcc?
Посмотрите здесь:

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

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

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

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

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

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

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

По поводу вопроса: где, по Вашему, число 10 ( в случае когда, как Вы сказали, вводите 1 ) записывается в начало массива?
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
04.10.2013, 18:33     Глюк gcc? #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] = ...
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
04.10.2013, 18:36  [ТС]     Глюк gcc? #4
Toshkarik, Почему результаты разные? В ide тот что нужен, в mingw нет.

Добавлено через 56 секунд
Croessmah, да, вот. Я это тоже видел, но он выполняется все равно правильно, думал что это не влияет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 18:43     Глюк gcc?
Еще ссылки по теме:

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

TDM-GCC 4.7.1 и _wfopen_s - C++
#include &lt;stdio.h&gt; int main (void) { //long index; wchar_t* filename = new wchar_t; //swprintf(filename,L&quot;%d&quot;, index); ...

Задание директории gcc - C++
Здравствуйте. Первый раз работаю с gcc. Не получается задать директорию для работы. То есть собирается только то, что лежит в ...

Компиляция бинарника на gcc - C++
Задача: нужно скомпилировать сырой бинарник на gcc. Он будет грузиться по адресу 0x10000 и туда же будет передаваться управление. И мне...

GCC, кириллица в консоле - C++
Есть код на языке C++. Я его компилирую в win7 через cmd с помощью команды g++. Компилятор установлен с помощью MiniGW. После компиляции...

компиляция gcc и MSVC - C++
Привет всем. Объясните, почему один и тот же код #include &quot;stdafx.h&quot; #include &lt;vector&gt; #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
04.10.2013, 18:43     Глюк gcc? #5
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему результаты разные? В ide тот что нужен, в mingw нет.
Потому что выход за пределы массива это UB. Результат может различаться от версии к версии ( даже релизной ), а у Вас, скорей всего, как раз разные версии mingw.
Yandex
Объявления
04.10.2013, 18:43     Глюк gcc?
Ответ Создать тему
Опции темы

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