Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2019, 16:18   #1
Tier_Mia
Пользователь
 
Регистрация: 13.10.2019
Сообщений: 14
По умолчанию Как передать динамический массив в функцию?Найти скалярное произведение векторов С++

Код:
#include<iostream>
using namespace std;

int amount(int k)
{ 
	cout << "write the amount of the coordinates ";
	cin >> k;
	return k;
}
 int vector_1()
{
	int k = amount(k);
	
	int* vect1 = new int[k];
	
	cout << "Input the coordinetes of yout vector: " << k << endl;
	for (int i = 0; i < k; ++i) 
	{
		cin >> vect1[i];

	}
	for (int i = 0; i < k; ++i) 
	{
		cout << vect1[i] << "  ";
	}
	return k;
	return vect1[k];
}
 int vector_2()
 {
	 
	 int k = amount(k);

	 int* vect2 = new int[k];

	 cout << "Input the coordinetes of yout vector: " << k << endl;
	 for (int i = 0; i < k; ++i)
	 {
		 cin >> vect2[i];

	 }
	 for (int i = 0; i < k; ++i)
	 {
		 cout << vect2[i] << "  ";
	 }
	 return k;
	 return vect2[k];
	
 }
 
 
 
 int main(int k, int * vect1, int* vect2)
 {
	 
	 float res;
	 res = 0.0;
	
	 int Vect1 = *vect1;
	
	 int Vect2 = *vect2;

	 for (int i = 0; i <= k; i++)
	 {
		
		res += Vect1[i] * Vect2[i];
     }

 cout << res;


 }

У меня 2 функции для каждого массива( массив - это координаты функции). Кроме них есть ещё первая функция amount, от которой я вызываю в функции vector_1 и vector_2 число k - количество координат. Последняя - это main, где происходит само умножение. Но проблема в том, что я не могу понять, как передать массив и члены массива(координаты)


______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 14.10.2019 в 09:52.
Tier_Mia вне форума Ответить с цитированием
Старый 13.10.2019, 19:54   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

Какой же бред написан...

Код:
int amount(int k)
Зачем передавать k по значению, если вы ее все равно переписываете и возвращаете?

Код:
int k = amount(k);
И оно компилится?

Код:
return k;
return vect1[k];
Это что? После первого ретурна в функции ничего не выполнится.

Код:
int main(int k, int * vect1, int* vect2)
У мейна есть строго определенные варианты и она вызывается не вами.

Код:
int Vect1 = *vect1;
Т.е. как к получить вы знаете, а для указателя бред можно писать.

Код:
for (int i = 0; i <= k; i++)
Кто такой к? Выход за границы + к может у ваших массивов свой.
p51x на форуме Ответить с цитированием
Старый 18.10.2019, 09:39   #3
CppLinux345
Пользователь
 
Регистрация: 26.09.2018
Сообщений: 23
По умолчанию

Мои глаза.Скок ошибок в коде.Во-первых учти хотя-бы то,что функция возвращает лишь одно значение,2 return-а не реально.
CppLinux345 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Распараллелить скалярное произведение векторов drako08 Общие вопросы C/C++ 0 26.04.2018 09:26
Передать неинициализированный двухмерный динамический массив в функцию zorg-kirill Общие вопросы C/C++ 3 02.03.2013 19:44
Программа на скалярное произведение векторов вася радугов Помощь студентам 3 21.09.2011 22:40
Как передать Динамический массив в функцию? RainCat Помощь студентам 4 13.04.2011 11:25
скалярное произведение векторов Wika17 Паскаль, Turbo Pascal, PascalABC.NET 1 29.12.2010 11:32