1 Востаннє редагувалося kerimov_e (23.02.2019 13:23:18)

Тема: Неправильно працює програма

Як виправити цю дурню?
https://replace.org.ua/uploads/images/8036/5f6f15b3236b838c80cb0baebc7ea664.png


#include "stdafx.h"
#include <iostream> 
#include <math.h>
#include <iomanip>
using namespace std;

int main()
{
    int i, j;
    unsigned N = 0, M = 0,A=0;  //n -stolbci m -stroki b-svob el
    cout << "M= "; cin >> M; cout << "N= "; cin >> N;
    double ** arr = new double*[N];
    for (i = 0; i < N; i++) {
        arr[i] = new double[M];
        for (j = 0; j < M; j++)
            arr[i][j] = rand() % 10 - 5;
    } 
    cout << "matrix A:\n";
    for (i = 0; i<N; i++)
    {
        for (j = 0; j<M; j++)
            cout << setw(7) << setprecision(2) << arr[i][j]; 
        cout << "\n";
    }
    double **B = new double*[A];
    cout << "Svobodni cleni matrix" << endl;
    for (int i = 0; i < M; i++)
    {
        cout << "svob cl: " << "[" << i << "] = ";
        cout << B[i];
        cout << "\n";
    }
    int x = 0;
    cout << endl << "lin rivnanya" << endl;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
        {
            cout << arr[i][j] << "x" << ++x;
            if (j != 2) 
                cout << " + ";
            if (j == 2) 
            {
                cout << " = " << B[i];
                cout << endl;
            }

        }
    cout << endl;
    system("pause");
    system("cls");
    delete[] arr[i];
    delete[] B[i];
    system("pause");
    return 0;
}

2

Re: Неправильно працює програма

double **B
cout << B[i];

B - вказівник на вказівник (тут це може використовуватися як масив масивів)
Ви виводите i-й елемент масиву B, тобто вказівник. Чого ви очікуєте?

Подякували: leofun01, Ukrvital2

3

Re: Неправильно працює програма

ну взагалі я очікую, що будете задаватися вільні члени матриці, можливо я чогось не розумію...

koala написав:
double **B
cout << B[i];

B - вказівник на вказівник (тут це може використовуватися як масив масивів)
Ви виводите i-й елемент масиву B, тобто вказівник. Чого ви очікуєте?

4

Re: Неправильно працює програма

Як тоді потрібно записати, щоб не було таких неприємних речей?

koala написав:
double **B
cout << B[i];

B - вказівник на вказівник (тут це може використовуватися як масив масивів)
Ви виводите i-й елемент масиву B, тобто вказівник. Чого ви очікуєте?

5

Re: Неправильно працює програма

Записати що саме, перепрошую?

6 Востаннє редагувалося Ukrvital (24.02.2019 13:28:35)

Re: Неправильно працює програма

Без вказівників було б так:

double B[3][4];
cout << B[3];

це чисто приклад, який не відноситься до програми
Щоб вивести, треба

double B[3][4];
for (int q=0; q< 4; q++)
cout << B[3][q] << " ";

І це також не відноситься до даної програми
Просто приклад