#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
int **matrix_new(int m, int n)
{
int **matrix = new int *[m];
for (int i = 0; i < m; i++)
{
matrix[i] = new int[n];
}
return matrix;
}
void matrix_random(int **matrix, int m, int n)
{
srand(time(0));
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
matrix[i][j]=rand()%10;
}
}
}
void matrix_print(int **matrix, int m, int n)
{
for (int i = 0; i < m; i++)
{
cout << "| ";
for (int j = 0; j < n; j++)
{
cout << matrix[i][j] << " ";
}
cout <<"|"<< endl;
}
}
int **matrix_sum(int **matrix, int m, int n)
{
int **sum = 0;
for (int i = 0; i < m; i++)
{
sum = sum + matrix[m][n];
}
return sum;
}
int **matrix_sort(int **matrix, int m, int index1,int index2)
{
int temp;
for (int i = 0; i < m; i++)
{
temp = matrix[i][index2];
matrix[i][index2] = matrix[i][index1];
matrix[i][index1] = temp;
}
return matrix;
}
int matrix_form(int **matrix, int m, int n)
{
for (int i = 0; i < n; i++)
{
int b = **matrix_sum(matrix, m, i);
int index1 = i;
for (int j = i; j < n; j++)
{
int c = **matrix_sum(matrix, m, j);
int index2 = j;
if(c<b)
{
b = c;
matrix_sort(matrix, m, index1, index2 );
}
}
}
return **matrix ;
}
int main()
{
const int a = 4;
const int b = 5;
const int c = 8;
int **A = matrix_new (a, b);
int **B = matrix_new (b, c);
matrix_random(A, a, b);
matrix_random(B, b, c);
cout << "Matrutsa A=" << endl;
matrix_print(A, a, b);
cout << "Matrutsa B=" << endl;
matrix_print(B, b, c);
matrix_form(A, a, b);
matrix_form(B, b, c);
cout << "Matrutsa A=" << endl;
matrix_print(A, a, b);
cout << "Matrutsa B=" << endl;
matrix_print(B, b, c);
system("pause");
return(0);
}
В функции matrix_sum видает ошибку , подскажите что я не так написал?
matrix_sum идет в коде после matrix_sort и компилятор о нем на момент компиляции ничего не знает. Попробуйте вставить такое объявление после строки с using:
int **matrix_sum(int **matrix, int m);
В языке С++ требуется объявлять сущности (типы, переменные, функции и т.п.) перед их использованием. У вас в коде это правило нарушено: функция matrix_sum
не объявляется перед попыткой ее использования. Именно об этом вам прямо сказал компилятор.
В коде присутствует классическая ошибка с множественным вызовом srand(time(0))
. В результате обе ваши "случайные" матрицы окажутся заполненными одной и той же последовательностью значений.
Что за чушь у вас написана в matrix_sum
- вообще не ясно. Вы пытаетесь применять адресную арифметику к нулевому указателю sum
. В языке С++ не поддерживается адресная арифметика для нулевых указателей. Поведение не определено.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Всем доброго времени сутокОтлавливаю клики мыши, затем преобразую каждый клик, который является центром примитива, в некоторый набор точек
Описать структуру ABITURIENT со следующими полями: