Переделать код из языка С++ в язык Си - C (СИ)
Формулировка задачи:
Написать программу сортировки первой строки двухмерного массива в порядке возрастания значений.
Переделайте пожалуйста с языка С++ на язык Си, или можно попробовать написать программу с начала.
П.с. я не изучал ещё язык Си, лишь С++. заранее огромное спасибо
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
srand(time(0));
const int raw=13,col=24;
int a[raw][col];
for (int i=0;i<raw;i++)
{
for (int j=0;j<col;j++)
{
a[i][j]=rand()%10;
cout <<a[i][j]<<" ";
}
cout <<"\n";
}
cout <<"\n";
for (int i=0;i<raw;i++)
{
for(int j=0;j<col;j++)
{
for (int k=col-1;k>j;k--)
if (a[i][k]<a[i][k-1])
{
int tmp=a[i][k];
a[i][k]=a[i][k-1];
a[i][k-1]=tmp;
}
cout<<a[i][j]<<" ";
}
cout <<"\n";
}
}
#include <stdio.h>
const int N = 3;
main()
{
int i, j, A[N], c;
int i, j, A[M][N];
for ( i = 0; i < N; i ++ )
for ( j = 0; j < N; j ++ )
{
printf ("A[%d][%d]=", i, j);
scanf ("%d", & A[i][j]);
}
for ( i = 0; i < N-1; i ++ )
for ( j = N-2; j >= i; j -- )
if ( A[i][j] > A[i+1][1] )
{
c = A[i][1]; A[i][1] = A[i+1][1];
A[i+1][1] = c;
}
printf("\n Отсортированный массив:\n");
for ( i = 0; i < N; i ++ )
printf("%d ", A[i]);
}Решение задачи: «Переделать код из языка С++ в язык Си»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int N = 3;
void main()
{
const int raw=13,col=24;
int a[raw][col];
int i,j,k,tmp;
srand((unsigned)time(0));
for (i=0;i<raw;i++)
{
for (j=0;j<col;j++)
{
a[i][j]=rand()%10;
printf("%d ",a[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0;i<raw;i++)
{
for(j=0;j<col;j++)
{
for (k=col-1;k>j;k--)
if (a[i][k]<a[i][k-1])
{
tmp=a[i][k];
a[i][k]=a[i][k-1];
a[i][k-1]=tmp;
}
printf("%d ",a[i][j]);
}
printf("\n");
}
system("pause");
}
Объяснение кода листинга программы
- Объявлены основные переменные:
raw- количество строк в массиве (13);col- количество столбцов в массиве (24);a- двумерный массив (13x24);i,j,k,tmp- вспомогательные переменные для работы с массивом.
- Инициализирован генератор случайных чисел с помощью
srand((unsigned)time(0)). - Заполнен массив
aслучайными числами от 0 до 9 с помощью циклаforи функцииrand(). Каждое число выводится на экран с помощьюprintf(%d,a[i][j]). - Выведен на экран заполненный массив
aс помощью циклаforи функцииprintf(\n). - Отсортирован массив
aпо второму столбцу (индекс 1) в порядке возрастания с помощью циклаfor, вложенного в другой циклfor. Если текущий элемент больше следующего, то они меняются местами с помощью временной переменнойtmp. - Выведен на экран отсортированный массив
aс помощью циклаforи функцииprintf(\n). - Завершает работу программы функция
system(pause), которая ожидает нажатия клавиши пользователем.