Перевести с паскаля в си - C (СИ) (75762)
Формулировка задачи:
Не могу перевести на си .
program Project1;
uses crt;
const N0=100;
Var A: Array[1..N0, 1..N0] Of Integer;
M: Integer;
i, j, k, N: Byte;
begin
Repeat
Write(' N = ');
Read(N);
Until (N In [1..100]);
Randomize;
For i:=1 To N Do
Begin
For j:=1 To N Do
Begin
A[i, j]:=Random(100);
Write(A[i, j]:4);
End;
WriteLn;
End;
writeln;
For i:=1 To N-1 Do
For j:=i+1 To N Do
if (A[i,n-i+1]<A[j,n-j+1]) Then
Begin
M:=A[i,n-i+1];
A[i,n-i+1]:=A[j,n-j+1];
A[j,n-j+1]:=M;
End;
For i:=1 To N Do
Begin
For j:=1 To N Do
Write(A[i, j]:4);
WriteLn;
End;
end.Решение задачи: «Перевести с паскаля в си»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <vcl.h>
void main()
{
const N0=100;
int A[N0][N0];
int M;
unsigned int i, j, k, N;
do
{
clrscr();
printf(" N = ");
scanf("%d",&N);
}while (N>N0||N<1);
Randomize();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
A[i][j]=random(N0);
printf("%d",A[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
if (A[i][N-i+1]<A[j][N-j+1])
{
M=A[i][N-i+1];
A[i][N-i+1]=A[j][N-j+1];
A[j][N-j+1]=M;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d",A[i][j]);
printf("\n");
}
return;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
, , , , . - Объявляем переменные: N0 (константа), A (массив), M (переменная), i, j, k, N (переменные для цикла).
- Входим в бесконечный цикл, который будет выполняться до тех пор, пока не будет введено число N в допустимом диапазоне.
- Очищаем экран и запрашиваем у пользователя ввод числа N.
- Инициализируем массив A случайными числами от 0 до N0.
- Выводим на экран полученную матрицу A.
- Сортируем матрицу A по второму столбцу (N-i+1) в порядке возрастания.
- Выводим на экран отсортированную матрицу A.
- Возвращаем управление.