Код по алгоритму, приведенному тут. Работает неверно

Тема в разделе "C/C++/C#", создана пользователем Terra, 23 апр 2010.

  1. Terra

    Terra Гость

    Здравствуйте!
    Вот, собственно алгоритм, который по идее должен быть реализован, но чего-то где-то ошибка
    [​IMG]
    Обрабатывается массив p_Q[deg][deg]
    Код (Text):
    int * c = new int [deg];
    int i, j, r, k, flag, p;
    flag=0;
    r=0;
    for (i=0; i<deg; i++)
    c[i]=-1;
    for (k=0; k<deg; k++){
    for (j=0; j<deg; j++){
    if (this->p_Q[k][j]!=0 && c[j]<0){
    flag++;
    if (flag)
    break;
    }
    if (flag){
    for (i=0; i< deg; i++)
    this->p_Q[i][j]*=(-1/(this->p_Q[k][j]));
    for (i=0; i<deg; i++)
    for(p=0; p<deg; p++)
    if (i!=j)
    this->p_Q[p][i]+=this->p_Q[p][j]*this->p_Q[k][i];
    c[j]=k;
    }
    }
    flag=0;
    }
    Спасибо
     
  2. Terra

    Terra Гость

    вариант номер два, тоже не верный
    Код (Text):
    int * c = new int [deg];
    int i, j, r, k, flag, p;
    flag=0;
    r=0;
    for (i=0; i<deg; i++)
    c[i]=-1;
    for (k=0; k<deg; k++){
    for (j=0; j<deg; j++){
    if (this->p_Q[k][j]!=0 && c[j]<0){
    flag++;
    if (flag)
    break;
    }
    if (flag){
    for (i=0; i< deg; i++)
    this->p_Q[i][j]*=(-1/(this->p_Q[k][j]));
    for (i=0; i<deg; i++)
    if (i!=j)
    this->p_Q[i][j]*=this->p_Q[k][i];
    for (p=0; p<deg; p++)
    for (i=0; i<deg; i++)
    if (i!=j)
    this->p_Q[p][i]+=this->p_Q[p][j];
    c[j]=k;
    }
    }
    flag=0;
    }
     
Загрузка...

Поделиться этой страницей