Написал код по рандомному формированию массива. Теперь хочу что бы он стал двумерным. Что, где добавить?
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define max_value 30
void swap(double* p1, double* p2)
{
double tmp = *p1;
*p1 = * p2;
*p2 = tmp;
}
void sort(double* vector, unsigned int size)
{
signed short int swapping = 1;
unsigned int j = 0;
while(swapping > 0)
{
swapping = -1;
for (j = 0; j < size - 1; ++j)
if (vector[j] > vector[j + 1])
{
swap(vector + j, vector + j + 1);
swapping = 1;
}
}
}
int main()
{
unsigned int size, i = 0;
double* vector;
srand((unsigned int)time(NULL));
printf("Enter the size of the vector\n");
scanf("%d", &size);
vector = (double*)malloc(sizeof(double) * size);
if (vector == NULL)
{
perror("Out of memory");
_getch();
return 0;
}
printf("Vector:\n");
for ( ; i < size; ++i)
printf("%4.2lf ", vector[i] = rand() % max_value);
sort(vector, size);
printf("\nSorting array\n");
for (i = 0 ; i < size; ++i)
printf("%4.2lf ", vector[i]);
system("pause");
free(vector);
return 0;
}
unsigned int rows, cols; // Размеры массива
double** vector;
...
vector = (double**)malloc(sizeof(double*) * rows);
for(unsigned int i = 0; i < cols; ++i)
vector[i] = (double*)malloc(sizeof(double) * cols);
.....
// Работать как с обычным двумерным массивом - через vector[i][j]
.....
for(unsigned int i = 0; i < cols; ++i)
free(vector[i]);
free(vector);
Только у вас просто C, никак не C++. В C++ vector
- свой тип, не используйте там это имя, а то потом могут начаться неприятности. Кстати, с ним это выглядело бы так:
vector<vector<int>> arr(rows,vector<int>(cols));
И все - двумерный массив сформирован.
for (int i = 0 ; i < sizeVert; ++i)
{
for (int j = 0 ; j < sizeGoriz; ++j)
{
printf("%4.2lf ", vector[i][j] = rand() % max_value);
}
}
Вроде так, если я верно понял вопрос
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
здравствуйте, решил написать небольшую обертку над си-шными сокетами, подскажите почему вылетает sigpipe в функции write?
Определить класс, который позволяет хранить данные об исключении объекта, который должен содержать информацию о том, что () для возвращения...
Нужно в программу передать имя файла, получаемое через открытие через командную строкуfile_name должно быть типа стринг