Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 615
1

Выводит INF вместо значения

12.03.2015, 11:24. Просмотров 2567. Ответов 10
Метки нет (Все метки)

Не ругайте за стиль , только учусь. проблема с выводом значения X строка 63,68. Вроде 97/97 должно быть 1, он даёт INF
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// решение систем уравнении методом Крамера
#include <iostream>
#include <windows.h>
#include <cstdlib> //<stdlib.h>
#include <ctime>//<time.h>
#include <iomanip>
#define SZ 3
 
using namespace std;
char *Rus(char *str)
{
    static char s[1024];
    CharToOem(str, s);
    return s;
}
//Функция для возврвтв определителя массива       наверное второй параметр может не нужен пока он равен SZ
 double findOpred (int arr[SZ][SZ+SZ],int rows);
 
int main(int argc, char* argv[])
 
{   int a[SZ][SZ+SZ]={{5,-1,2,0,0,0},{2,3,-4,0,0,0},{1,2,3,0,0,0}};
    int v[SZ][SZ+SZ]={{5,-1,2,0,0,0},{2,3,-4,0,0,0},{1,2,3,0,0,0}}; 
        //Стартовый массив   Двумерный Массив поконстанте для работы*
    int b[SZ]={-2,19,1};            //Массив для правой части
    int n;
    int i,j;
    int k;
    double temp,x;
    double oprM;
    time_t t;
    
    srand((unsigned)time(&t));
    
n=SZ;   
 
//-------------------------------------------------------------------------------------//
// Вывод массива после ввода
    
 oprM=findOpred(a,SZ);
 cout<<"Vernul opr massiva  "<<oprM<<endl;
 // Вывод массива после первой обработки
    for ( i= 0; i<n; i++)   {  
        cout <<endl;
    for ( j = 0; j<n+n; j++) {
        cout.width (4);
        cout <<a[i][j];
        }
    }
    cout <<endl;
 
 
 if (oprM=0){
     cout<<Rus("Определитель массива равен 0. Уравнение не имеет множество решении ")<<endl;
 }
 
 //Готовим массив для определителя х1..хn
    for ( j = 0; j<n; j++) {
         for ( i= 0; i<n; i++)  {  
            a[i][j]=b[i];
        }
                
     temp=findOpred(a,SZ);
    x=temp/oprM;    // почему выводит INF
 cout << "Vernul opr" << j <<"-  " << temp << endl;
    
 cout << "X" << j+1 << "- " ;
// cout.presicion(5);
 cout<<x << endl;   // почему выводит INF
   memcpy(a, v, sizeof(v));   //копирование массива v в а
}
// cout.setf(ios::scientific);
 
//-----------------------------------------------------------------------------------------------// 
  
   system("PAUSE"); 
   return 0;
 
}
 
//Функция для возврвтв определителя массива
double findOpred (int arr[SZ][SZ+SZ],int rows)
{
    int i,j;
    int k;
    int opr1;
    int sum;
//  n=SZ;
    //-------------------------------------------------------------------------------------//
    //Приводим матрицу к правилу Саррюса 
 
    for ( i = 0; i<rows; i++){
        for ( j = 0; j<rows; j++) {
            arr[i][j+rows]=arr[i][j];
        }
    }
 //-----------------------------------------------------------------------------------------//   
 // нахлдим определитель основной матрицы а+а+а-а-а-а  
    opr1=0;
    
    // метод крамера шаг 1 сумма диоганали для плюса надо повторить n раз от k=n
    for ( k = 0; k<rows; k++){
        sum=1;
        for ( i = 0; i<rows; i++){
    
            sum*=arr[i][i+k];
        }    
  //  cout<<"sum1-"<<sum;
    opr1+=sum;
    }
  // метод крамера шаг 2 сумма побочной диоганали для минуса повторить n-1 раз от k=n-1
    for ( k = 0; k<rows; k++){
        sum=1;    
        for ( j = 0; j<rows; j++){
    
        sum*=arr[j][rows-j-1+k];
        } 
    opr1-=sum;
    }
    cout<<endl;     
//  cout<<"opr- "<<opr1;
    return(opr1);
//----------------------------------------------------------------------------------------------
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2015, 11:24
Ответы с готовыми решениями:

Выводится 1.#INF вместо значения
проблема с выводом значения v, должно быть значение в десятичной дроби , а...

Выводит -1.#IND вместо значения переменной
Здравствуйте, очень долго бьюсь с проблемой. заключается она в следующем. Есть...

Бесконечность вместо чисел, cout<< #INF
Считаю комплексные в цикле. z,с заданы. for(int i=0;i&lt;20;i++) { cout &lt;&lt;...

Выводит -inf при вводе x = 1, z = 2, y =3
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { ...

Метод Якоби. Выводит результат -1.INF и -1.IND
Вот сделал прогу, но почему-то вместо нормального результата выводит это:...

10
Max Dark
шКодер самоучка
1970 / 1746 / 861
Регистрация: 09.10.2013
Сообщений: 3,855
Записей в блоге: 6
Завершенные тесты: 2
12.03.2015, 11:46 2
Лучший ответ Сообщение было отмечено marat_miaki как решение

Решение

строка 52: присваивание вместо сравнения
1
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 615
12.03.2015, 12:10  [ТС] 3
Да уж трудно будет мышлениями Паскаля освоить си
0
Байт
12.03.2015, 14:31
  #4

Не по теме:

Цитата Сообщение от Cra3y Посмотреть сообщение
присваивание вместо сравнения
Да, денечек сегодня! Чуть ли не пятый топик с этой ошибкой! Или это массовая миграция с Паскаля?:)

0
Croessmah
12.03.2015, 14:35
  #5

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Или это массовая миграция с Паскаля?
в каком-то универе решили на c++ перейти или сегодня фаза луны просто такая :)

0
Fallenworld
12.03.2015, 14:55
  #6

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
в каком-то универе решили на c++ перейти
полюбому. Студенты обычно стадамигруппами ходят.

0
Evg
Эксперт CАвтор FAQ
19360 / 7209 / 538
Регистрация: 30.03.2009
Сообщений: 20,159
Записей в блоге: 30
12.03.2015, 15:32 7
Цитата Сообщение от marat_miaki Посмотреть сообщение
Да уж трудно будет мышлениями Паскаля освоить си
Современные компиляторы умеют выдавать предупреждения там, где стоит присваивание, а по смыслу должно быть сравнение. Нужно просто эти предупреждения читать
1
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 615
12.03.2015, 20:16  [ТС] 8
Не удивляйтесь, я студентом был лет 25 тому назад аграрного-ветеринар. И это не их миграция. В этом форуме я только сегодня появился.
Знаю немного Delphi,FoxPro9. На Си решил мозги помять. И на си пробую писать всего неделю. Стыдно будет вам-технарям, если вас сельхозники обойдут. Может найдете решение методом Крамера покороче??
0
Байт
Эксперт C
19233 / 12357 / 2608
Регистрация: 24.12.2010
Сообщений: 25,444
12.03.2015, 21:11 9
Цитата Сообщение от marat_miaki Посмотреть сообщение
Стыдно будет вам-технарям, если вас сельхозники обойдут.
Нисколечко! Только рады будем! Чем больше умных людей - тем и нам интересней жить. А кто они уж там... Да хоть ассенизаторы!
По поводу Крамера - ну вот не люблю я его чего-то. Он не виноват, так судьба сложилась.
0
marat_miaki
163 / 149 / 89
Регистрация: 08.04.2013
Сообщений: 615
12.03.2015, 21:20  [ТС] 10
Хоть знания в математике только со школы, думаю что этот алгоритм как автомат Калашникова.Прост,понятен и еще работает. С Гауссом посложней будет
0
Байт
Эксперт C
19233 / 12357 / 2608
Регистрация: 24.12.2010
Сообщений: 25,444
12.03.2015, 21:20 11
Может поможет...
http://algorithmlib.org/kramer_slay
0
12.03.2015, 21:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2015, 21:20

Почему при вводе чисел в ответе выводит #INF
где ошибка почему при вводе чисел в ответе выводит #INF #include &lt;iostream&gt;...

Почему при выводе значения переменной выводиться inf?
При выводе z выводится inf #include &lt;iostream&gt; void main() { double...

С++ вместо 0.0 выводит -0.0
Сначала вместо нуля выводил экспоненту, поставил в сout setprecision(1) выводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru