0 / 0 / 0
Регистрация: 16.06.2017
Сообщений: 1
1

Обратный цикл for

19.06.2017, 18:59. Показов 35483. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хочу написать код, который бы выводил заданную последовательность в обратном порядке. Мой код ее выводит, но перед выводом пишет цифры, которые совсем не нужны. Что я сделал не так?(если что, то у меня дев си пп)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[]={1,2,3,4,5};
 
   for(int j=5;j>=0;j--) 
                    cout<<a[j]; 
     system("PAUSE");
    return EXIT_SUCCESS;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2017, 18:59
Ответы с готовыми решениями:

Обратный цикл
Есть задание, узнать является ли введенная строка, перевертышем. string s = textBox1.Text, t =...

обратный цикл while
Вообщем нужно найти с помощью цикла while последний положительный элемент целочисленного массива....

Обратный отсчёт, цикл for to
Не опознаёт точки на экране при обратном отчёте в цикле for to. Если установить for x:=0 to 1099...

Обратный цикл for не коректно работает
Добро всем :senor: Мелочь но не могу догнать... Я вывожу в StringGrid данные с таблицы и хочу их...

5
4240 / 2937 / 687
Регистрация: 08.06.2007
Сообщений: 9,817
Записей в блоге: 4
19.06.2017, 19:06 2
Индекс должен меняться от четырех до нуля включительно. То есть можно записать
C++
1
for(int j=4; j>=0; j--)
1
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
19.06.2017, 19:06 3
Цитата Сообщение от JazzHunyMan Посмотреть сообщение
for(int j=5;j>=0;j--)
Последний элемент массива имеет индекс 4. Напишите int j=4;
1
47 / 28 / 12
Регистрация: 23.01.2013
Сообщений: 125
19.06.2017, 19:06 4
у тебя 5 элементов в массиве, ты обращаешься к 6-му элементу по индексу 5
Цитата Сообщение от JazzHunyMan Посмотреть сообщение
Мой код ее выводит, но перед выводом пишет цифры
это просто везение, но это UB
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
05.12.2020, 18:49 5
Здравствуйте,

Что то я не пойму, почему происходит бесконечный цикл:
C++
1
2
3
4
for ( usnigned int i = 3; i >= 0; i--)  //
    {
        cout << i << endl;
    }
Почему при unsigned int, когда цикл доходит до i==0, он не завершает цикл по условию i >= 0, а продолжает и меняет i на 4294967295 и продолжает цикл ?
Причем просто с int такого не происходит.

И тогда вот так цикл тоже не правильный:
C++
1
2
3
4
for ( usnigned int i = 3; i == 0; i--)  //
    {
        cout << i << endl;
    }
Такой цикл вообще не работает, просто сразу пропускает.
Что то я вообще запутался как эти циклы работают.
0
18831 / 9834 / 2403
Регистрация: 30.01.2014
Сообщений: 17,272
05.12.2020, 19:05 6
Optimus11, циклы тут не при чем. Беззнаковое число "зациклено" по модулю 2N, где N разрядность типа.
Ваше условие i >= 0 верно при i == 0, а на следующей итерации i-- превращает его в очень больше положительное число, что опять же удовлетворяет условию i >= 0. Получается бесконечный цикл.

Добавлено через 3 минуты
Цитата Сообщение от Optimus11 Посмотреть сообщение
Такой цикл вообще не работает, просто сразу пропускает.
Работает как вы написали.
А вы написали вот что:
"Пусть i равно 3"
"Пусть цикл продолжается пока i равно 0".
но у вас i равно 3, вы же сами это написали, значит и цикл продолжаться не будет.
0
05.12.2020, 19:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2020, 19:05
Помогаю со студенческими работами здесь

Как сделать обратный цикл
Построил 2 шара на плоскости, не без помощи ютуба. Теперь осталось сделать &quot;анимацию&quot;, вообщем...

Найти правый обратный, левый обратный и обратный оператор
Здравствуйте! Если существует, то найти: правый обратный, левый обратный и обратный оператор....

Аналог паскалевского downto (обратный цикл do), как реализовать?
for m:=n downto 1 do begin for i:=m-1 downto 1 do begin p:=a; for j:=1 to...

Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием...
Найти сумму чисел 1 в квадрате до 10 c квадрате...операцию возведению в степень не использовать...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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