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

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

Войти
Регистрация
Восстановить пароль
 
ATAMAN200
9 / 9 / 1
Регистрация: 14.08.2010
Сообщений: 148
#1

Не перечисляет массив - C++

21.11.2010, 14:18. Просмотров 303. Ответов 9
Метки нет (Все метки)

Извеняюсь за код так как это pawno скриптинг но он похож на C++ поэтму пишю тут.

Код
#include <a_samp>
#include <a_players>
#include <a_vehicles>

forward Func();

main()
{
}

public Func()
{
new bbb=0,
    ddd=0,
	string3[30];

new Float:x1[20],
    Float:y1[20],
    Float:z1[20],
    
    Float:x2[20],
    Float:y2[20],
    Float:z2[20],
    
    Float:streee1[30],
    Float:strfff1[30];

bbb = GetMaxPlayers();

for(new aaa=0; aaa < bbb; aaa++)
{
if(IsPlayerInAnyVehicle(aaa)==1)
{
ddd = GetPlayerVehicleID(aaa);
GetVehiclePos(ddd, x1[aaa], y1[aaa], z1[aaa]); //узнаёт координаты трспорта и запоминает в массивы "x1[aaa], y1[aaa], z1[aaa]"
}
else if(IsPlayerInAnyVehicle(aaa)==0)
{
GetPlayerPos(aaa,x2[aaa],y2[aaa],z2[aaa]);//узнаёт координаты всех игроков и запоминает в массивы "x2[aaa], y2[aaa], z2[aaa]"
}
}

for(new ooo=0; ooo < bbb; ooo++)
{
for(new uuu=0; uuu < bbb; uuu++)
{
streee1[uuu] = x1[uuu] - x2[ooo]; //Ошибка вот тут не перечисляет x2[ooo]
strfff1[uuu] = y1[uuu] - y2[ooo]; //Ошибка вот тут не перечисляет y2[ooo]
}}

for(new rrr=0; rrr < bbb*bbb; rrr++)
{
format(string3[rrr], sizeof(string3), "%f,%f",streee1[rrr],strfff1[rrr]); //форматирует полученные разници между x1[uuu] - x2[ooo] и y1[uuu] - y2[ooo] в вещественное число и передает в строку string3[rrr]
SendClientMessageToAll(0xFFFF00AA, string3[rrr]); //отображает на экран результат вычесления streee1[uuu] = x1[uuu] - x2[ooo]; и strfff1[uuu] = y1[uuu] - y2[ooo]; 
}
return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
SetTimer("Func",1000,1); //каждую секунду запускает на выполнения функцию public Func()
return 1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 14:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не перечисляет массив (C++):

перечисляет числа вместо их суммирования - VBA
Всем привет) Что-то непонятное... Вот код: Dim r, c, d, y As Single Private Sub CommandButton1_Click() r = InputBox(&quot;Введите...

Вызов API функции. Функция перечисляет классы устройств в системе - Visual Basic .NET
Доброго времечка! Подскажите пожалуйста про функцию API CM_Enumerate_Classes. Функция перечисляет классы устройств в системе. Вопрос на...

Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y - QBasic
Вывести на печать массив X, массив Z, массив Y, произведение элементов массива X, упорядоченный массив Y. ...

Дан массив целых чисел а(12). Переписать в массив х четные, а в массив у нечетные элементы массива а - Turbo Pascal
Помогите пожалуйста решить эту задачу. Массив a выводит на печать. Я пишу a mod 2 = 0 , а он мне 41 ошибку выдает. Что делать? Вот...

Сформировать массив, который будет состоять из чисел, входящих как в массив A, так и в массив B - C (СИ)
Задание: На основе исходных массивов A и B (n и m – рабочие размеры массивов) сформировать массив C, который будет состоять из чисел,...

Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C - Pascal
Дан одномерный массив A из N элементов. Переписать положительные элементы массива в массив B, а отрицательные в массив C.

9
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
21.11.2010, 15:10 #2
Если рассуждать по сишному, то должно работать. А вы уверены, что вообще не перечисляет, просто значение ooo увеличивается после того, как будут перебраны все значения uuu.
0
ATAMAN200
9 / 9 / 1
Регистрация: 14.08.2010
Сообщений: 148
21.11.2010, 15:14  [ТС] #3
Всё верно мне надо сначало перебрать все uuu потом увеличить ooo на дин и опять перебрать все uuu

Исправил ошибку но всё равно не помого
Код
for(new ooo=0; ooo < bbb; ooo++)
{
for(new uuu=0; uuu < bbb; uuu++)
streee1[uuu] = x1[uuu] - x2[ooo]; //Ошибка вот тут не перечисляет x2[ooo]
strfff1[uuu] = y1[uuu] - y2[ooo]; //Ошибка вот тут не перечисляет y2[ooo]
}
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
21.11.2010, 15:20 #4
Вот, что еще заметил - такой цикл не имеет смысла, т.к. в конечном счете массивы заполняться значениями, которые будут в последнем проходе цикла. Это все можно записать вот в таком виде:
Код
for(new uuu=0; uuu < bbb; uuu++)
{
streee1[uuu] = x1[uuu] - x2[bbb-1]; 
strfff1[uuu] = y1[uuu] - y2[bbb-1]; 
}
Результат этого цикла точно такой же как у ваших двух.

Добавлено через 3 минуты
еще странно: strfff1 и streee1 имеют размерность 30, а x2 и y2 имеют размерность 20. Вы уверены, что в строке
Код
bbb = GetMaxPlayers();
bbb получает корректное значение?
0
ATAMAN200
9 / 9 / 1
Регистрация: 14.08.2010
Сообщений: 148
21.11.2010, 15:20  [ТС] #5
bbb это не массив это переменная типа int и она имеет один результат у меня в данном случаи 3
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
21.11.2010, 15:22 #6
Да я понимаю, просто если GetMaxPlayers() вернула бы, например, 25, то могла быть ошибка доступа.
0
ATAMAN200
9 / 9 / 1
Регистрация: 14.08.2010
Сообщений: 148
21.11.2010, 15:22  [ТС] #7
strfff1 и streee1 там можно посути обойтись и 10 я просто написал с запасом чтобы не думалось
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
21.11.2010, 15:24 #8
Цитата Сообщение от ATAMAN200 Посмотреть сообщение
Исправил ошибку но всё равно не помого
По-моему раньше со скобками было правильней)
0
ATAMAN200
9 / 9 / 1
Регистрация: 14.08.2010
Сообщений: 148
21.11.2010, 15:25  [ТС] #9
Цитата Сообщение от Kastaneda Посмотреть сообщение
Да я понимаю, просто если GetMaxPlayers() вернула бы, например, 25, то могла быть ошибка доступа.
да ошибка была бы но я это предусматрел бы потом
там максимум игроков может играть на сервере это 500 вот я бы и поставил
streee1[500]
strfff1[500]
0
Kastaneda
Нарушитель
Эксперт С++
4676 / 2880 / 234
Регистрация: 12.12.2009
Сообщений: 7,314
Записей в блоге: 2
Завершенные тесты: 1
21.11.2010, 15:25 #10
А в отладчике трассировать пробовали?
0
21.11.2010, 15:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2010, 15:25
Привет! Вот еще темы с ответами:

Массив: Отсортировать полученный массив 3 способами: по строкам, по столбцам( возр.), 3) и весь массив - Delphi
Помогите, пожалуйста ,решить задачу. Очень нужно. Задан массив (4*6). Элементы задаются по правилу: если j&gt;3, то Aij=i+j, иначе...

Массив: Как сделать так, чтобы результирующий массив представлял собой измененный по заданным правилам первый массив? - C++ Builder
Доброй ночи форумчане, очередной нубо-вопрос не требует отлагательств имеется одномерный массив, из которого по заданным условиям...

Вывести массив а(i, j), одномерный массив b(i) и полученный массив АВ с помощью функции Cells - VBA
Задача 1 Написать программу для решения следующей задачи: для числа n вводимого с клавиатуры (с помощью функции InputBox())...

Массив. Разделить на два: массив элементов с четными и массив с нечетными индексами - Pascal ABC
VII.Одномерные массивы 50. Задан массив с количеством элементов N. Сформировать два массива: в первый включить элементы исходного массива...


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

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

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