Помощь с массивом и символом +=
|
|
Vitaminoz
|
Дата: Вторник, 26.06.2012, 08:16:08 | Сообщение # 1 |
|
Сообщений: 141
Репутация: 1 [ +/- ]
|
|
Читая wiki появилось пару вопросов. Никак не могу понять как работает вот такой символ += к пример new a = 5; a += 5; Есть код new array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; new sum = SumArray(array, 10); Создаётся новая переменная sum С именем для функции SumArray А вот я не могу понять что за парметры внутри функци array - это ссылка для созданного массива в переменной ? 10 - индекс массива ? Не могу понять
Сообщение отредактировал Vitaminoz - Вторник, 26.06.2012, 08:18:11 |
|
| |
_wS_
|
Дата: Вторник, 26.06.2012, 12:36:43 | Сообщение # 2 |
|
a += 5 это то же самое, что и a = a + 5, т.е. к a добавляется 5.
Quote (Vitaminoz) Создаётся новая переменная sum С именем для функции SumArray Создается переменная sum с значением, которое возвращает функция SumArray
Code #include <sourcemod>
public OnPluginStart() { new x[3] = {1, 3, 5};
new sum = SumArray(x, 3); PrintToServer("sum = %d", sum);
// или можно сразу PrintToServer("sum = %d", SumArray(x, 3)); }
SumArray(const x[], max) { new xz = 0; for (new i = 0; i < max; i++) { xz += x[i]; PrintToServer("%d", x[i]); } return xz; } const x[] внутри функции - массив, который мы создали и передали в функцию как параметр (аргумент). const значит, что мы не будем менять массив. max - кол-во элементов в массиве.
P.S. Хватит столько тем создавать, зачем этот спам, у тебя уже есть несколько тем, например, эта - смысл темы один, а их у тебя много.
|
|
| |
Vitaminoz
|
Дата: Вторник, 26.06.2012, 12:45:22 | Сообщение # 3 |
|
Сообщений: 141
Репутация: 1 [ +/- ]
|
|
Вопрос про const -> А разве можно изменять массив внутри функции ? Вопрос про переменную xz -> Зачем писать = 0 если так new xz; 1 и то же ?
|
|
| |
_wS_
|
Дата: Вторник, 26.06.2012, 12:58:08 | Сообщение # 4 |
|
Quote (Vitaminoz) Вопрос про const -> А разве можно изменять массив внутри функции ? Что тебе мешает проверить? Я же говорил, тестируй, выводи результат в консоль сервера и смотри.
Code public OnPluginStart() { new x[3] = {1, 3, 5}; PrintToServer("-> %d", x[0]); // 1 xz(x); PrintToServer("-> %d", x[0]); // 7 }
xz (x[]) x[0] = 7; Quote (Vitaminoz) Зачем писать = 0 если так new xz; 1 и то же ? Да, одно и то же, дело вкуса, хочешь пиши = 0, а хочешь нет.
|
|
| |
Vitaminoz
|
Дата: Вторник, 26.06.2012, 20:24:38 | Сообщение # 5 |
|
Сообщений: 141
Репутация: 1 [ +/- ]
|
|
Ок спасибо щас буду делатьДобавлено (26.06.2012, 20:24:38) --------------------------------------------- Вот ёще вопрос, на wiki есть такой код Code (5 * 6) % 7; //Modulo operator, вычисляет как 2 Как по действиям они получили 2 ?
|
|
| |
_wS_
|
Дата: Вторник, 26.06.2012, 20:50:31 | Сообщение # 6 |
|
Ну как как, математика обычная. 30 % 7 = 2. Не стоит этим голову забивать, очень редко используется, я и сам не дружу с этими процентами.
|
|
| |
Vitaminoz
|
Дата: Вторник, 26.06.2012, 21:04:11 | Сообщение # 7 |
|
Сообщений: 141
Репутация: 1 [ +/- ]
|
|
Всем ёще раз привет решил что-то замутить такое друг дал имею сделать баланс 3 -кт l 1 - т Вот код Code #include <sourcemod> #include <cstrike>
new array[];
public Plugin:myinfo = { name = "Test", author = "Vitamin", description = "<- Description ->", version = "1.0", url = "<- URL ->" }
public OnPluginStart() { Circle(); }
Circle(const array[], count); { decl String:teamString[]; GetCmdArg(1, teamString, sizeof(teamString)); new Target_Team = StringToInt(teamString); if(Target_Team = CS_TEAM_CT) { new total; for (i = 0; i < count; i++) { if(array } } } Я больше ничего не смог придумать .. + это я все из инетов находил материалы можете помочь пожалуйста
|
|
| |