Переделать код из языка С++ в язык Си - 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)
, которая ожидает нажатия клавиши пользователем.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д