IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Интересно...
сообщение
Сообщение #1


Гость






..., что по вашему мнению надо оторвать программисту, который решил сделать код более "аккуратным", и сделал вот так:
#include <iostream>

int main() {
const int n = 10;
const int arr[n] = {
139, 232, 365, 459, 532,
698, 025, 721, 844, 053
};
for(int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;

return 0;
}

Это упрощенный вариант реального кода. Там кода было побольше, функция строк из 50-60, и массив размером в 750 элементов, но основная идея остается той же... Тот код привел к потере почти 2 часов, пока мы искали ошибку в алгоритме, и только потом поняли, в чем дело... wacko.gif

Это ни в коем случае не HolyWar, но в Паскале и родственных ему языках такое невозможно по определению. А тут - ... Нет слов. Кстати, может, кто-то знает, есть ли какие-то ключи компиляции или опции, чтобы находить подобные проблемы? Хотя бы предупреждение чтоб выдавалось...

Спойлер (Показать/Скрыть)


P.S. Думал, где создать тему, здесь или в Юморе, решил создать здесь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 618
Пол: Мужской

Репутация: -  24  +


Спасибо, долго смеялся =). Давно, когда читал об этой особенности Си, сильно удивился такому формату, потому и запомнил хорошо.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 26.05.2009 19:32) *
P.S. Думал, где создать тему, здесь или в Юморе
Ну, юмор тут весьма специальный)).
Я буквально за день до этого рассказывал дочке про особенности языков и приводил примеры трудно находимых ошибок в С. Этот немного поизощреннее, согласен..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


А можете рассказать тут?
А то нет возможности запустить, т.к. нет ничего на компе.
Не вижу в коде ничего криминального...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Олег, вот и мы сразу не увидели... А ведь числа, начинающиеся с 0, трактуются компилятором С/С++ как записанные в 8-ричной СС... И получается, что 025 = 258 = 2110 и 053 = 538 = 4310
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Для демнстрации даже не нужен С, потому что та же самая штука в обычном командном языке MS DOS.
Сделай себе вот такой bat'ник:
set /a a=031
echo %a%

- и посмотри, что он напечатает)).
Я однажды сделал себе батничек для переименования фотографий (кстати - очень удобно, рекомендую, могу скинуть) и пользовался им долго и счастливо аж до октября. А октябре он отказался работать, вот именно по такой причине. Но я это просек после примерно получаса подробной трассировки.. smile.gif)



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Цитата
могу скинуть
Мона мне?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Client @ 1.06.2009 13:14) *
Мона мне?
Конечно)).
Очень удобно, на мой взгляд, у меня все картинки так расфасованы. Но..

Но я тут сообразил, что этот скриптик на самом деле locale-зависимый. Иначе гря, он вряд ли пойдет на русской Винде без доработки((. Ладно, здесь это флуд, я сделаю тему другую и положу. Мож, кто адаптирует ее к России.. Я при всем желании не смогу - у мя нет русской версии.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 15:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name