Возможно ли для цикла for аварийно завершить работу кода, несмотря на отсутствие содержимого - PullRequest
0 голосов
/ 27 июня 2018

В моем коде была ошибка, из-за которой я смог определить определенный цикл for, но теперь я не уверен, как именно вызывается проблема

int linregm(int n, float x[], float y[]){
float denom=1;
sumx = 0.0;                  
sumx2 = 0.0;                    
sumxy = 0.0;                     
sumy = 0.0;                      
    /*
for (i=0;i<n;i++)
    { 
    //sumx  = sumx + x[i];       
    //sumx2 = sumx2 + x[i]*x[i];  
    //sumxy = sumxy + x[i] * y[i];
    //sumy  = sumy + y[i];         
} 
    */
denom = (n * sumx2 - sqr(sumx));
if (denom == 0) {
    // singular matrix. can't solve the problem.
    pass=1;
            return 0;
}

m = (n * sumxy  -  sumx * sumy) / denom;

pass=0; 
    return m;
}

Эта функция имеет проблему в том месте, где есть цикл for, даже если я просто запускаю сам цикл без внутреннего содержимого, он все равно выдает ошибку.

m = linregm(sizeof(x)/sizeof(x[0]), x, y);

__IO float Send_float_Data[256];
float x[8] = {1,2,3,4,5,6,7,8};
float y[8];
float m,b;
unsigned int pass;
float   sumx,sumx2,sumxy,sumy=0.0; 

unsigned int i=0,j;

А это объявления переменных.

Я новичок в C, поэтому я не знаю, есть ли специальные взаимодействия между переменными или что-то, что могло бы испортить мой код, не было никакого предупреждения компилятора, поэтому синтаксис не должен быть проблемой. У вас, ребята, есть есть идеи, что именно я делаю не так? Спасибо.

...