c语言做自适应过滤模型,代码显示没有错误,但是运行没有结果。

代码:
#include "stdio.h"
#include "math.h"
#include "iostream"
using namespace std;
int main(){
int n=40;

img


(这里是40个数据,也是代码一部分,由于提示数据类型的问题我给每个数据后面加了f)

float xx;//预测值
int N=3;//权数个数
float k=0.00652f;//调整系数
float w[3]={0.33f,0.33f,0.33f};//权数
float mse1=0,mse2=1;//方差
int i,j;
int nums=0;
float result=0.0;
while (1)
{
    mse1=0;
    for(i=N;i<n;i++)
    {
        xx=0;
        for(j=0;j<N;j++)
            xx+=w[j]*x[i-j-1];
        for(j=0;j<N;j++)
            w[j]+=2*k*(x[j]-xx)*x[i-j-1];
        mse1+=(x[i]-xx)*(x[j]-xx);
    }
    nums++;
    mse1=sqrt(mse1/(n-N-1));
    if(mse2!=0)
    {
        if(mse1/mse2>0.999&&mse1/mse2<1.001) break;
        mse2=mse1;
    }
}
for(j=0;j<N;j++)
    result+=w[j]*x[i-j-1];
cout<<"权数"<<w[0]<<" "<<w[1]<<endl;
cout<<"预测值"<<result<<endl;
cout<<"轮数:"<<nums<<endl;
return 0;

}

显示没有错误:

img

但是运行窗口一直是这样没有东西:

img

编译后运行可以出结果的(取其中10个数)运行:

F:\2022\pythontest>g++ t1.cpp -o t0301.exe
F:\2022\pythontest>t0301.exe
权数-88.9579 29.0926
预测值20.3903       
轮数:1006