Переписать код с Паскаля на Си - C (СИ)
Формулировка задачи:
Помогите пожалуйста переписать код на Си может кто умеет
uses crt;
const n=6;
var a,b:array[1..n,1..n] of real;
i,j,k,l:byte;
max:real;
begin
clrscr;
randomize;
writeln('Matrica A:');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=10*random;
write(a[i,j]:5:2);
end;
writeln;
end;
writeln('Matrica B;');
for i:=1 to n do
begin
for j:=1 to n do
begin
max:=a[i,1]; {за макс принимаем верхний левый элемент прямоугольника}
for k:=i to n do {идем по прямоугольнику от строки до конца}
for l:=1 to j do {и от начала до столбца}
if a[k,l]>max then max:=a[k,l];{находим макс}
b[i,j]:=max;{записываем}
write(b[i,j]:5:2);
end;
writeln;
end;
readln
end.Решение задачи: «Переписать код с Паскаля на Си»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 6
int
main(void)
{
double a[N][N], b[N][N], max;
int i, j, k, l;
time_t t;
srand((unsigned) time(&t));
printf("Matrix A:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
a[i][j] = (double) rand() / RAND_MAX;
printf("%5.3f ", a[i][j]);
}
printf("\n");
}
printf("Matrix B:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
max = a[i][0];
for (k = i; k < N; k++)
for (l = 0; l <= j; l++)
if (a[k][l] > max)
max = a[k][l];
b[i][j] = max;
printf("%5.3f ", b[i][j]);
}
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
- В коде используется язык программирования C.
- Задачей программы является переписывание кода с Паскаля на Си.
- В коде определена константа N, которая равна 6.
- В массиве a[N][N] хранятся случайные значения, которые генерируются функцией rand().
- В массиве b[N][N] хранятся максимальные значения из массива a[N][N].
- Функция main() является точкой входа в программу.
- С помощью функции srand() инициируется генератор случайных чисел.
- С помощью цикла for и функции printf() выводятся значения массива a[N][N].
- С помощью цикла for и функции printf() выводятся значения массива b[N][N].
- В цикле for используются переменные i, j, k, l.
- Переменная max инициализируется значением a[i][0].
- В цикле for перебираются все элементы массива a[N][N].
- Если элемент a[k][l] больше max, то max обновляется этим значением.
- Значение max сохраняется в массиве b[i][j].
- Функция printf() используется для вывода значений массива b[N][N].
- В конце программы возвращается 0, что означает успешное выполнение программы.