| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Написание проги с одномерным массивом! |
| Автор: Baton2007 12.12.2007, 15:56 | ||
| Мне дали задание: Дано натуральное число N и последовательность A1 , A2 , ...... An состоящая из N чисел . Надо получить последовательность , которая в отличается от исходной тем , что все нечетные элементы удвоены. Мне нужно написать эту прогарамму с помощью датчика случайных чисел (random) и одномерного массива. Я написал вот такую
Ноработает она не коректно объясните почему и помогите исправить! |
| Автор: Alek86 12.12.2007, 15:59 |
| в чем именно некорректность? |
| Автор: Baton2007 12.12.2007, 16:02 |
| Именно в том что она не удваивает нечетные члены массива а должна удваивать! |
| Автор: crazy_hand 12.12.2007, 16:07 |
| Ты при проверке какую индексацию подразумеваешь: с нуля или с единицы? Если с нуля, то тебе нужно цикл с i=0 начинать, если с единицы - то у тебя все правильно. |
| Автор: Baton2007 12.12.2007, 16:13 |
| С нуля т.к рандомом задается если я не ошибаюсь с 0 до 10! |
| Автор: crazy_hand 12.12.2007, 16:17 | ||||
причем здесь рандом? Ты когда exe смотришь и проверяешь результат считаешь с нуля или с единицы? Если с единицы - то у тебя все правильно. Если с нуля то цикл
нужно начинать с 0, т.е.
|
| Автор: bsa 12.12.2007, 16:19 |
| Работать должно. Попробуй в printf заменить "%3i" на "%3i ". И перед getch() поставь printf("\n"); Добавлено через 1 минуту и 20 секунд crazy_hand, все с точностью до наоборот: 0 - это четное число. |
| Автор: crazy_hand 12.12.2007, 16:28 |
| Да, все верно, 0 - четное число. Если у него цикл с 1: смотрим результат - если считать с 0, то результат неверный, а если считать с 1, то все правильно. Соответственно если в цикле начинать с i=0, то тогда считая ответ начиная с 0 - все верно будет. У меня все пашет на ура. Только к n пришлось модификатор const добавить ;) |
| Автор: bsa 12.12.2007, 16:33 |
| Baton2007, тебе надо удваивать нечетные элементы или элементы, стоящие на нечетных позициях? |
| Автор: crazy_hand 12.12.2007, 16:43 | ||
| bsa мда, судя по сорцу - элементы на нечетных позициях, судя по постам - нечетные элементы Baton2007 Посмотри, может тебе так нужно?: нечетные элементы :
|
| Автор: Baton2007 12.12.2007, 16:59 |
| Надо удваивать нечетные элементы а не элементы стоящие на нечетных позициях! |
| Автор: bsa 12.12.2007, 17:02 | ||||
Замени:
|
| Автор: SergeCpp 12.12.2007, 17:12 |
| Можно и без условия A[ i ] = A[ i ] << ( A[ i ] & 1 ); P.S. A[ i ] <<= A[ i ] & 1; |
| Автор: crazy_hand 12.12.2007, 17:27 |
| SergeCpp найс, мог бы ставить плюсы - поставил бы |