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

Ошибка при заполнении - C++

Восстановить пароль Регистрация
 
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
28.11.2011, 20:40     Ошибка при заполнении #1
Помогите определить где ошибка, так как какое число я не ввожу выводится в конце именно оно. Как мне кажется я ошибаюсь при заполнении массива.
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
// schitalka.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h";
 
 
using namespace std;
int circle[10], players, winner, wordsq;
int main()
{
setlocale(LC_ALL, ".1251");
cout << "Введите количество игроков не больше 10\n";
cin >> players;
if (players>10)
{
    cout << "Количество игроков слишком большое\n";
    system("pause");
    return 0;
}
 
for(int i=0; i<players; i++)
{
    for(int p=1; p<=players; p++)
    {
        circle[i] = p;
    }
}
winner = circle[3];
cout << winner;
system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
28.11.2011, 20:52     Ошибка при заполнении #2
подумайте, какое значение будет иметь circle[i] после выполнения этого цикла:
C++
1
2
3
4
        for(int p=1; p<=players; p++)
        {
                circle[i] = p;
        }
при том, что на протяжении всего цикла, i - остается неизменным
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
28.11.2011, 21:41  [ТС]     Ошибка при заполнении #3
Но ведь i увеличивается. Или я сделал неправильную вложенность циклов?
C++
1
for(int i=0; i<players; i++)
Добавлено через 4 минуты
Все, вот так заработало
C++
1
2
3
4
5
6
int i = 0;
for(int p=1; p<=players; p++)
{
    circle[i] = p;
    i = i++;
}
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
28.11.2011, 21:43     Ошибка при заполнении #4
Цитата Сообщение от Amator Посмотреть сообщение
i = i++;
зачем это?

можно просто:
C++
1
i++;
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
28.11.2011, 21:56  [ТС]     Ошибка при заполнении #5
Я это уже исправил) Вопрос - как определить количество заполненных ячеек массива? Я пробовал
C++
1
sizeof(circle)/sizeof(int)
но так получается количество самих ячеек.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
28.11.2011, 21:59     Ошибка при заполнении #6
Цитата Сообщение от Amator Посмотреть сообщение
Вопрос - как определить количество заполненных ячеек массива?
никак, вы сами должны следить за этим
например, хранить это количество в переменной
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
28.11.2011, 22:01  [ТС]     Ошибка при заполнении #7
И напоследок - при удаление значения ячейки через
C++
1
delete(circle[i])
происходит ли смещение всех значений для заполнения пустой ячейки?
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
28.11.2011, 22:10     Ошибка при заполнении #8
Цитата Сообщение от Amator Посмотреть сообщение
происходит ли смещение всех значений для заполнения пустой ячейки?
читайте о том, что такое delete
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
28.11.2011, 22:20  [ТС]     Ошибка при заполнении #9
Так, значит это мне не подходит. Извините, за такое количество вопросов
сейчас нашел решение для своей задачи Веселая считалочка но почему то visual studio сыплет на него ошибками.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
28.11.2011, 23:13     Ошибка при заполнении #10
Цитата Сообщение от Amator Посмотреть сообщение
но почему то visual studio сыплет на него ошибками.
покажите код и ошибки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 22:27     Ошибка при заполнении
Еще ссылки по теме:

C++ ошибка при заполнении массива
Ошибка при заполнении массива C++
Ошибка при заполнении динамического массива C++

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

Или воспользуйтесь поиском по форуму:
Amator
 Аватар для Amator
1036 / 368 / 9
Регистрация: 11.11.2008
Сообщений: 3,146
Завершенные тесты: 2
29.11.2011, 22:27  [ТС]     Ошибка при заполнении #11
Я уже сам справился) нужно было подключить еще один заголовок+я немного изменил логику, т.к. мне не нужно определять первого игрока, так что просто установил первого. Осталось более детально понять алгоритм. Мне пока не понятно
C++
1
2
3
4
5
vector <int> gamers(players);
 
gamers.erase(gamers.begin()+vib);
 
words%i - это получение остатка от деления насколько понимаю?
Добавлено через 49 минут
Еще один вопрос - ехе файлик из папки debug не запускается на других ПК вообще. Как это побороть? Видимо нужно собирать проект по другому? Использую Microsoft Visual Studio 2010

Добавлено через 21 час 44 минуты
Проблему с запуском поборол выбрав через менюшку сбору релиза. Вопросы по коду еще актуальны.
Yandex
Объявления
29.11.2011, 22:27     Ошибка при заполнении
Ответ Создать тему
Опции темы

Текущее время: 21:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru