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

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

Войти
Регистрация
Восстановить пароль
 
maksikooo
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 37
#1

Запутался в циклах - C++

18.11.2013, 17:15. Просмотров 230. Ответов 3
Метки нет (Все метки)

Вроде бы все сделал правильно но есть ошибка
Заполняю массив рандомными числами потом скалдываю все числа массива и записую результат в одтельный массив и вывожу в мемо все нормально но есть 3 огромных числа которых не должно быть вот код
1ая
C++
1
2
3
4
5
6
7
{int i;
for (i=0; i < 9; i++) {
a[i]=rand()%30-10;
Memo1->Lines->Add(a[i]);
}
 
}
2ая кнопка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{   int i,j,b,jp,bp,result[100],n1,n2,n3,schet;
schet=0;
n2=0;
n3=1;
for (i = 0; i < 9; i++) {
n2=n2+1;
for (b = 1; b < 9; b++) {
if (n2>b||n2==b) {
n3=n3+1;
for (j = 2; j < 9; j++) {
if (n3>j||n3==j ) {
result[schet]=a[i]+a[b]+a[j];
Memo2->Lines->Add(result[schet]);
schet=schet+1;
}
continue;
}
}
 
}
 
}}
массив a глобальный

Добавлено через 4 минуты
Если убрать проверку if n2 n3 то он будет слаживать несколько раз 1 и теже числа и всеравно будут числа которые не должны быть например 3431490
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 17:15     Запутался в циклах
Посмотрите здесь:

Переменные в циклах - C++
я понимаю как работает переменная i первом цикле, но во втором не пойму. Переменная i объявлена, но не проинициализирована. Какое значение...

RANDOM в циклах - C++
Вот программка выдающая 10 клонов случайного числа от 0 до 9, что в ней надо изменить, чтобы все числа были рандомные, то есть разные?...

Break в циклах - C++
Такая проблема: занимаюсь по книге Эллайна, и в ней заговорилось о break и его использовании в циклах. Я, дабы проверить эту зверюгу на...

Задачи по циклах - C++
1)Написать функцию, которая по целым числом определяет старшую цифру его десятичной записи. С++; ...

Ошибка в циклах - C++
В примере есть 2 цикла(один в другом). Ссылка: http://ideone.com/lnxyf. Там получилось так, что ввод данных просто пропускается. Почему?

Обьявление переменных в циклах и до - C++
Возник вопрос почему? Без обьявления int x = 1; до цикла возникает ошибка при компиляции программы ... Хотя в книжке обьявление типа и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
18.11.2013, 17:57     Запутался в циклах #2
Цитата Сообщение от maksikooo Посмотреть сообщение
3 огромных числа которых не должно быть
Это явный признак выхода за границы массива.

Вот ваша переработанная вторая кнопка в человеческом виде. Но вашу тонкую мысль я не понял.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int i,j,b,jp,bp,n1,n2=0,n3=1,schet=0;
int result[100] = {0};
for (i = 0; i < 9; i++)
  {
  n2 += 1;
  for (b = 1; b < 9; b++)
    {
    if (n2>b||n2==b)
      {
      n3 += 1;
      for (j = 2; j < 9; j++)
        {
        if (n3>j||n3==j )
          {
          result[schet] = a[i] + a[b] + a[j];
          Memo2->Lines->Add( result[schet] );
          schet += 1;
          }
        continue;
        }
      }
    }
  }
maksikooo
0 / 0 / 0
Регистрация: 30.04.2013
Сообщений: 37
18.11.2013, 22:01  [ТС]     Запутался в циклах #3
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Это явный признак выхода за границы массива.

Вот ваша переработанная вторая кнопка в человеческом виде. Но вашу тонкую мысль я не понял.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int i,j,b,jp,bp,n1,n2=0,n3=1,schet=0;
int result[100] = {0};
for (i = 0; i < 9; i++)
  {
  n2 += 1;
  for (b = 1; b < 9; b++)
    {
    if (n2>b||n2==b)
      {
      n3 += 1;
      for (j = 2; j < 9; j++)
        {
        if (n3>j||n3==j )
          {
          result[schet] = a[i] + a[b] + a[j];
          Memo2->Lines->Add( result[schet] );
          schet += 1;
          }
        continue;
        }
      }
    }
  }
Ничего не изменилось,в цикле всеравно 3 оч больших числа
n2 n3 ввел потому что если без них то он после прохождения третего цикла добавляет к b 1 а j берет 2 тоесть дважды их слаживает

Добавлено через 10 минут
спасибо разобрался сам но с вашей подсказкой о границе массива
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2013, 22:03     Запутался в циклах
Еще ссылки по теме:

задачи о вложенных циклах - C++
1)Дана матрица А(m,n). Перемножить элементы с четной суммой индексов I+J. Найти максимальные элементы каждого столбца матрицы. 2)Даны...

для людей понимающих в циклах - C++
есть задача и код на паскале (тока он какой та левый) помогите нужен код на си/си++ или хотя бы алгоритм решения! зарание спасибо ...

Запутался с индексами - C++
Привет, немного запутался в своем же коде (который работает на ура). Создал функцию, которая разделяет текст на слова и возвращает...

запутался со списком - C++
Всем доброго времени суток! Помогите пожалуйста разобраться, я сделал класс spisok , в нем несколько нужных мне структур и методов,...


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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
18.11.2013, 22:03     Запутался в циклах #4
C++
1
n2>b||n2==b
">=" ???
Yandex
Объявления
18.11.2013, 22:03     Запутался в циклах
Ответ Создать тему
Опции темы

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