Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
1

Глюк gcc?

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

Author24 — интернет-сервис помощи студентам
Компилируя программу в 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2013, 18:06
Ответы с готовыми решениями:

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

Gcc и c++
Доброго времени суток. Начну с предисловия. Я всегда писал на C++ под винду и в линукс не совался....

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

GotoXY в GCC
ДОБРОГО ВРЕМЕНИ СУТОК !!! Я использую GCC и мне нужно использовать функцию GotoXY. В GCC нет...

4
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
04.10.2013, 18:26 2
Цитата Сообщение от Ryuk Посмотреть сообщение
Компилируя программу в gcc, выводит от части неверный ответ. В code::blocks все в порядке
Как вот это понимать? gcc - это компилятор. code::blocks это IDE. Причем эта самая IDE использует gcc в качестве компилятора.

По поводу вопроса: где, по Вашему, число 10 ( в случае когда, как Вы сказали, вводите 1 ) записывается в начало массива?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 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
183 / 182 / 56
Регистрация: 10.06.2011
Сообщений: 871
04.10.2013, 18:36  [ТС] 4
Toshkarik, Почему результаты разные? В ide тот что нужен, в mingw нет.

Добавлено через 56 секунд
Croessmah, да, вот. Я это тоже видел, но он выполняется все равно правильно, думал что это не влияет
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
04.10.2013, 18:43 5
Цитата Сообщение от Ryuk Посмотреть сообщение
Почему результаты разные? В ide тот что нужен, в mingw нет.
Потому что выход за пределы массива это UB. Результат может различаться от версии к версии ( даже релизной ), а у Вас, скорей всего, как раз разные версии mingw.
0
04.10.2013, 18:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2013, 18:43
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru