По-моему Вам надо написать три функции: для ввода структуры, определяющей гармоническое колебание, для формирования массива и для вывода этого массива на экран. Можно это сделать и в одной функции main, но раз надо через другие функции помимо main, то так и нужно делать. Вот пример:
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
struct harmony { double A, ω, τ, φ; };
harmony Input()
{ harmony x; cout << "A ω τ φ: ";
cin >> x.A >> x.ω >> x.τ >> x.φ; return x; }
void Array(double *x, int size, harmony y)
{
for (int i = 0; i < size; i++)
x[i] = y.A * sin(y.ω * y.τ * i + y.φ);
}
void Output(double *x, int size)
{
for (int i = 0; i < size; i++)
cout << setw(8) << i << setprecision(10)
<< setw(15) << x[i] << endl;
}
int main()
{
int i, n;
harmony Harmony = Input();
cout << "n: " << fixed; cin >> n;
double *s = new double [n];
Array(s, n, Harmony);
Output(s, n);
}
Не нравится так - сделайте получше и покрасивее для себя. У меня, кстати, греческие литеры выступают в роли полей структуры и с ними всё работает, а в других системах программирования я не проверяла. Да, между прочим, вектор отсчётов s -это не часть структуры, а его надо сформировать при помощи структуры!
