Переделать код из языка С++ в язык Си - 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");
}

Объяснение кода листинга программы

  1. Объявлены основные переменные:
    • raw - количество строк в массиве (13);
    • col - количество столбцов в массиве (24);
    • a - двумерный массив (13x24);
    • i, j, k, tmp - вспомогательные переменные для работы с массивом.
  2. Инициализирован генератор случайных чисел с помощью srand((unsigned)time(0)).
  3. Заполнен массив a случайными числами от 0 до 9 с помощью цикла for и функции rand(). Каждое число выводится на экран с помощью printf(%d ,a[i][j]).
  4. Выведен на экран заполненный массив a с помощью цикла for и функции printf(\n).
  5. Отсортирован массив a по второму столбцу (индекс 1) в порядке возрастания с помощью цикла for, вложенного в другой цикл for. Если текущий элемент больше следующего, то они меняются местами с помощью временной переменной tmp.
  6. Выведен на экран отсортированный массив a с помощью цикла for и функции printf(\n).
  7. Завершает работу программы функция system(pause), которая ожидает нажатия клавиши пользователем.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы