Witam. Zacząłem sobie pisać przekształcenie HousHoldera i doszedłem do pewnego momentu, gdzie jak kompiluje i uruchamiam to wyskakuje mi komunikat program przestał działać. Wiem że to jest jakiś kłopot ze zmienną "wynikvtv" jak ja za komentuje to program działa ok. Nie mam pojęcia gdzie może być błąd. Jeżeli ktoś ma gotową implementacje w c/c++,to z chęcią bym przyjął.
#include <iostream>
#include <math.h>
using namespace std;
double alfa(double tab[],int n)
{
double s=0;
for(int i=0;i<n;i++)
s+=pow(tab[i],2);
return pow(s,0.5);
}
void macierzv(double a,double tab[],double tab10[],int n,double w[])
{
for (int i=0;i<n;i++)
{
w[i]=tab[i]+a*tab10[i];
}
}
void macierzvtv(double w[],double wynikvtv,int n)
{
for (int i=0;i<n;i++)
{
wynikvtv=w[i]*w[i];
}
}
int main()
{
int n;
double a;
double wynikvtv=0;
double w[n];
cout<<"Podaj n:"<<endl;
cin>>n;
double tab[n],tab10[3]={1,0,0};
for(int i=0;i<n;i++)
{
cout<<"Podaj A["<<i<<"]:"<<endl;
cin>>tab[i];
}
cout<<"Podana macierz:"<<endl;
cout<<endl;
for(int i=0;n>i;i++)
{
cout<<tab[i]<<endl;
cout<<endl;
}
cout<<endl;
cout<<"Wspolczynnik alfa:"<<endl;
cout<< alfa(tab,n)<<endl;
a=alfa(tab,n);
macierzv(a,tab,tab10,n,w);
cout<<"Wektor V"<<endl;
cout<<endl;
for(int i=0;n>i;i++)
{
cout<<w[i]<<endl;
cout<<endl;
}
macierzvtv(w,wynikvtv,n);
cout<<"Wynik vtv"<<endl;
cout<<wynikvtv<<endl;
return 0;
}