Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
marat_miaki
122 / 111 / 44
Регистрация: 08.04.2013
Сообщений: 418
#1

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

12.03.2015, 11:24. Просмотров 1737. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выводит INF вместо значения (C++):

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

Выводит -1.#IND вместо значения переменной - C++
Здравствуйте, очень долго бьюсь с проблемой. заключается она в следующем. Есть ряд Тейлора для sin(x)/x который равен(сразу распишу) sum...

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

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

Вместо нуля выводит непонятное число - C++
Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ: int n=5; double **a, *b, *x, r, c, s, q; int i,...

Вместо результата выводит непонятное число - C++
Сделал программу которая должна высчитывать по формуле, но она высчитывает не совсем то число. int chislo =...

10
Max Dark
шКодер самоучка
1855 / 1655 / 603
Регистрация: 09.10.2013
Сообщений: 3,681
Записей в блоге: 6
Завершенные тесты: 2
12.03.2015, 11:46 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
строка 52: присваивание вместо сравнения
1
marat_miaki
122 / 111 / 44
Регистрация: 08.04.2013
Сообщений: 418
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
18714 / 6683 / 472
Регистрация: 30.03.2009
Сообщений: 18,702
Записей в блоге: 29
12.03.2015, 15:32 #7
Цитата Сообщение от marat_miaki Посмотреть сообщение
Да уж трудно будет мышлениями Паскаля освоить си
Современные компиляторы умеют выдавать предупреждения там, где стоит присваивание, а по смыслу должно быть сравнение. Нужно просто эти предупреждения читать
1
marat_miaki
122 / 111 / 44
Регистрация: 08.04.2013
Сообщений: 418
12.03.2015, 20:16  [ТС] #8
Не удивляйтесь, я студентом был лет 25 тому назад аграрного-ветеринар. И это не их миграция. В этом форуме я только сегодня появился.
Знаю немного Delphi,FoxPro9. На Си решил мозги помять. И на си пробую писать всего неделю. Стыдно будет вам-технарям, если вас сельхозники обойдут. Может найдете решение методом Крамера покороче??
0
Байт
Диссидент
Эксперт C
17253 / 11325 / 1794
Регистрация: 24.12.2010
Сообщений: 22,296
12.03.2015, 21:11 #9
Цитата Сообщение от marat_miaki Посмотреть сообщение
Стыдно будет вам-технарям, если вас сельхозники обойдут.
Нисколечко! Только рады будем! Чем больше умных людей - тем и нам интересней жить. А кто они уж там... Да хоть ассенизаторы!
По поводу Крамера - ну вот не люблю я его чего-то. Он не виноват, так судьба сложилась.
0
marat_miaki
122 / 111 / 44
Регистрация: 08.04.2013
Сообщений: 418
12.03.2015, 21:20  [ТС] #10
Хоть знания в математике только со школы, думаю что этот алгоритм как автомат Калашникова.Прост,понятен и еще работает. С Гауссом посложней будет
0
Байт
Диссидент
Эксперт C
17253 / 11325 / 1794
Регистрация: 24.12.2010
Сообщений: 22,296
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
Привет! Вот еще темы с ответами:

Почему выводит красные квадратики вместо Backspace? - C++
ЛЮДИ! Помогите пожалуйста!!! Проблема: после некоторых манипуляций ламера(просьба сильно не ругать) Borland C++ 5.02 стал выводить...

Выводит целочисленное значение вместо вещественного (функции) - C++
// 1-2.cpp: Отдельные функции // #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; int i; void...

Выводит вместо массива мягко сказать хрень - C++
#include &lt;stdio.h&gt; #include&lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;math.h&gt; #include &lt;iostream&gt; using namespace std; void main()...

Программа вместо списка выводит несколько семерок - C++
Вот создаю программу со списками, и почему то когда вывожу на экран её она висит и выводит много семерок вот код может у вас получится...


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

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

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