Вопросы

Dworkin
Новичок

Всем привет. Вычитаю аргументы в функции и получаю нереальные числа.

#include <a_samp>
stock v_sub(v1[2], v2[2]) 
{ 
  	//Для теста выведем числа аргументов и убедимся что они нормальные 
	printf("v1 in func: %f, %f", v1[0], v1[1]);
  	printf("v2 in func: %f, %f", v2[0], v2[1]);
  	//Теперь приступим к вычитанию
  	new Float:v3[2]; 
  	v3[0] = v2[0] - v1[0]; 
  	v3[1] = v2[1] - v1[1]; 
  	printf("v3 in func: %f, %f", v3[0], v3[1]); 
} 

main() 
{ 
	new me[2] = {1.0, 1.1}; 
  	new target[2] = {2.0, 6.0}; 
  	v_sub(me, target); 
}

Результат из консоли:

v1 in func: 1.000000, 1.100000

v2 in func: 2.000000, 6.000000

v3 in func: 8388608.000000, 20132660.000000

 

Что я делаю не так?

Отредактировано пользователем Dworkin

Поделиться сообщением


Ссылка на сообщение

3 ответа на этот вопрос

  • 0
Dworkin
Новичок

Выше я разобрался, надо в параметры добавить тип. Вот так

stock v_sub(Float: v1[2],Float: v2[2])

Но теперь учитывая эту ошибку у меня все равно получается нереальное число
 

#include <a_samp>
  
stock v_sub(Float:v1[2], Float:v2[2]) //Вычитание векторов 
{ 
	new Float:res[2]; 
  	res[0] = v2[0] - v1[0];
  	res[1] = v2[1] - v1[1];
  	printf("v_sub. v1: %f, %f", v1[0], v1[1]);
  	printf("v_sub. v2: %f, %f", v2[0], v2[1]);
  	printf("v_sub. res: %f, %f", res[0], res[1]);
  	return res; 
} 

stock v_magnitude(Float:v[2]) //Модуль вектора 
{ 
	new Float:res = floatsqroot(v[0] * v[0] + v[1] * v[1]);
  	printf("v_magnitude. v: %f, %f", v[0], v[1]);
  	printf("v_magnitude. res: %f", res);
  	return res; 
} 

stock v_normalize(Float:v[2]) //Нормализация вектора 
{ 
	new Float:magnitude = v_magnitude(v); 
  	printf("v_normalize. magnitude: %f", magnitude);
} 

main() 
{ 
	new Float:me[2] = {2.00, 2.1}; 
  	new Float:target[2] = {2.10, 5.2}; 
    	new Float:v_sub_res[2]; 
  	v_sub_res = v_sub(me, target); 
  	v_normalize(v_sub_res); 
}

Результат из консоли:
v_sub. v1: 2.000000, 2.099999

v_sub. v2: 2.099999, 5.199999

v_sub. res: 0.099999, 3.099999

v_magnitude. v: 0.099999, 3.099999

v_magnitude. res: 3.101612

v_normalize. magnitude: 1078362368.000000
 

То есть в функции v_magnitude у переменной res в результате операций получается нормальное число, но когда я возвращаю это число в функции v_normalize в переменую magnitude, оно почему, то превращается в нереально большое.

 

Что я делаю не так в этот раз?
 

Отредактировано пользователем Dworkin

Поделиться сообщением


Ссылка на сообщение
  • 0

Если возвращаете Float, то и сток тоже нужно маркировать этим тегом, то есть

stock v_magnitude(Float:v[2])

заменить на 

 

stock Float:v_magnitude(Float:v[2])

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Danya_Smolin
      От Danya_Smolin

      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
    • Danya_Smolin
      От Danya_Smolin
      Cтрайк Рп
      Скачать файл
      Что добавили в доработку мода страйк:
      1. Викторина
      2. Новый вокзал
      3. Аренда мопедов по пикапу
      4. Система грандиозного пропуска (Батл-пасс)
      5. Система подарков
      6. Премиум аккаунт
      7. Эксклюзивные автомобили
      8. Добавили очень много команд для администраторов
      9. Новое окно авторизации

      10. Новая система бизнесов

      11. Добавили команду /fixcar
      12. Система военного положения
      13. Система аварии на зоне-51

      14. Система подкупного полицейского

      15. Новый логотип
      16. Добавили много новых аксессуаров
      17. Добавили таймер в виде TextDraws.

      18. Музыка при регистрации и на вокзале
      19. Добавили маппинг КПП и домиков на дереве

      20. Исправили множество багов

      21. Добавили сертификаты

      22. Добавили навыки

      23. Добавили рынок барыг

      24. Добавили инвесторов
      25. Добавили 5 новых мест в /gps

      26. Добавили обучение персонажа

      27. Новые интерьеры
      28. Добавили админские команды

      29. Система контейнеров

      30. Система создания семей

      31. Система сертификатов

      32. Система кейсов
      33. Добавили челлендж на донат-рубли

      34. Добавили маппинг на пляже

      35. Добавили команды для мероприятия

      36. Добавили новые банкоматы

      37. Добавили команду /anticheat

      38. Добавили команду /veh

      39. Система барыг

      40. Система инвесторов

      41. Добавили систему привилегий

      42. Добавили новый магазин для выгодных покупок только для привилегий - /pdonate
      43. Переписан /donaterub.

      44. Добавлено 13 костюмов.

      45. Исправлена база данных.

      46. Исправлены мелкие баги.

      47. Добавлено 17 титулов.

      48. Исправлен /donaterub.

      49. Теперь эксклюзивные машины сохраняются после выхода.

      50. Ваши мани теперь под защитой и их не украдут мошенники после перезахода.

      51. Скин сохраняется после выхода/перезахода.

      52. Донат/Деньги/Уровень сохраняется после перезахода.

      53. Исправлены ошибки в БД.
      Добавил Danya_Smolin Добавлено 07.07.2025 Категория Моды Автор Pwn_Admin  
    • Kasper0
      От Kasper0
      Продаётся готовый проект CRMP.
      Готовый игровой мод База Данных с более чем 350к аккаунтов Сборка, скинпак/автомобили, карта Домены Сайт,лаунчер Чат-боты Более 5 бэкапов игрового мода, начиная с версии 0.3e Связаться: t.me/zayhhik
    • Kasper0
      От Kasper0


      Скачать файл Criminal Russia RolePlay (CRMPRP)
      Всех приветствую, в наличии мод CRMPRP. Разрабатывался с 2013 года если не ошибаюсь от бывшего Владельца (полностью оригинал + так-же имеется БД с сайтом и системой логов). Мод без бонуса, куча работ для новичков например: (Лесопилка,ферма,рыбалка,водитель автобуса,автомеханик,дольнабойщики,завод,таксист и др.) имеется система квестов, система домов (5 классов + возможность заменять интерьеры и система чердака), система гаражей (3 класса), обширная система семей, обширная система *ОПГ. Мод спокойно может выдержать 500+ онлайна
      Добавил Kasper0 Добавлено 05.07.2025 Категория Моды Автор Tim  
    • OREGON-RPG
      От OREGON-RPG
      **Привет, будущий друг!**
      Мы создаем новый сервер в >> GTA SA-MP (OregoN Role Playing Game) << и ищем таких же увлеченных игроков, как ты!!!

      Здесь ты сможешь: 

      Влиять на развитие сервера – твое мнение важно! 

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

      Сервер еще в разработке – это шанс войти в историю с самого начала! 

       >>> Давай строить этот мир вместе? <<<

       Переходи по ссылке, будь в центре событий и стань частью истории: 

      [ Группа ВКонтакте: vk.com/oregonrpgru ]

      [ Форум: oregon-rpg.ru ]