Переписать код с Паскаля на Си - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста переписать код на Си может кто умеет
Листинг программы
  1. uses crt;
  2. const n=6;
  3. var a,b:array[1..n,1..n] of real;
  4. i,j,k,l:byte;
  5. max:real;
  6. begin
  7. clrscr;
  8. randomize;
  9. writeln('Matrica A:');
  10. for i:=1 to n do
  11. begin
  12. for j:=1 to n do
  13. begin
  14. a[i,j]:=10*random;
  15. write(a[i,j]:5:2);
  16. end;
  17. writeln;
  18. end;
  19. writeln('Matrica B;');
  20. for i:=1 to n do
  21. begin
  22. for j:=1 to n do
  23. begin
  24. max:=a[i,1]; {за макс принимаем верхний левый элемент прямоугольника}
  25. for k:=i to n do {идем по прямоугольнику от строки до конца}
  26. for l:=1 to j do от начала до столбца}
  27. if a[k,l]>max then max:=a[k,l];{находим макс}
  28. b[i,j]:=max;{записываем}
  29. write(b[i,j]:5:2);
  30. end;
  31. writeln;
  32. end;
  33. readln
  34. end.

Решение задачи: «Переписать код с Паскаля на Си»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define N 6
  6.  
  7. int
  8. main(void)
  9. {
  10.     double a[N][N], b[N][N], max;
  11.     int i, j, k, l;
  12.     time_t t;
  13.  
  14.     srand((unsigned) time(&t));
  15.  
  16.     printf("Matrix A:\n");
  17.     for (i = 0; i < N; i++) {
  18.         for (j = 0; j < N; j++) {
  19.             a[i][j] = (double) rand() / RAND_MAX;
  20.             printf("%5.3f ", a[i][j]);
  21.         }
  22.         printf("\n");
  23.     }
  24.  
  25.     printf("Matrix B:\n");
  26.     for (i = 0; i < N; i++) {
  27.         for (j = 0; j < N; j++) {
  28.             max = a[i][0];
  29.             for (k = i; k <  N; k++)
  30.             for (l = 0; l <= j; l++)
  31.                 if (a[k][l] > max)
  32.                     max = a[k][l];
  33.             b[i][j] = max;
  34.             printf("%5.3f ", b[i][j]);
  35.         }
  36.         printf("\n");
  37.     }
  38.     return 0;
  39. }

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

  1. В коде используется язык программирования C.
  2. Задачей программы является переписывание кода с Паскаля на Си.
  3. В коде определена константа N, которая равна 6.
  4. В массиве a[N][N] хранятся случайные значения, которые генерируются функцией rand().
  5. В массиве b[N][N] хранятся максимальные значения из массива a[N][N].
  6. Функция main() является точкой входа в программу.
  7. С помощью функции srand() инициируется генератор случайных чисел.
  8. С помощью цикла for и функции printf() выводятся значения массива a[N][N].
  9. С помощью цикла for и функции printf() выводятся значения массива b[N][N].
  10. В цикле for используются переменные i, j, k, l.
  11. Переменная max инициализируется значением a[i][0].
  12. В цикле for перебираются все элементы массива a[N][N].
  13. Если элемент a[k][l] больше max, то max обновляется этим значением.
  14. Значение max сохраняется в массиве b[i][j].
  15. Функция printf() используется для вывода значений массива b[N][N].
  16. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

15   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут