Переписать в C из Pascal - C (СИ)

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

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

const n=6;
        m=5;
var b,c:array[1..n] of integer;
     a:array[1..m,1..n] of integer;
     i,j,k,t:integer;
begin
clrscr;
randomize;
writeln('Massiv B:');
for i:=1 to n do
    begin
      b[i]:=i;
      write(b[i],' ');
    end;
writeln;
writeln;
writeln('Matrica A:');
for i:=1 to m do
     begin
        for j:=1 to n do
           begin
              a[i,j]:=random(15);
              write(a[i,j]:4);
            end;
        writeln;
   end;
i:=1; //берем очередное число из массмва В
repeat
t:=0;
for j:=1 to m do
for k:=1 to n do
if a[j,k]=b[i] then //если встречаем его в маирице
    begin
       inc(t); //считаем
       c[t]:=j; //записываем в массив номер строки
    end;
if (t>1)and(c[1]<>c[t])then writeln('Chislo ',b[i],' > 1 stroki');//если число более одного раза и номера строк в массиве разные, выводим сообщение
inc(i); //переходим к следующему числу
until i>n; //если массив закончился, завершаем
readln
end.

Решение задачи: «Переписать в C из Pascal»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 6
#define M 5
 
int main(void)
{
    int a[M][N], b[N], c[N];
    int i, j, k, t;
    
    srand((unsigned)time(NULL));
    printf("Massiv B:\n");
    for (i = 0; i < N; ++i)
    {
        b[i] = i;
        printf("%d ", b[i]);
    }
    printf("\n\n");
    printf("Matrica A:\n");
    for (i = 0; i < N; ++i)
    {
        for (j = 0; j < M; ++j)
        {
            a[i][j] = rand() % 15;
            printf("%4d", a[i][j]);
        }
        printf("\n");
    }
    i = 0;
    do
    {
        t = -1;
        for (j = 0; j < M; ++j)
            for (k = 0; k < N; ++k)
                if (a[j][k] == b[i])
                {
                    ++t;
                    c[t] = j;
                }
        if (t > 0 && c[0] != c[t])
            printf("Chislo %d > 1 stroki\n", b[i]);
        ++i;
    } while (i < N);
    getchar();
    
    return 0;
}

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

  1. Объявлены массивы a[M][N], b[N], c[N] для хранения данных.
  2. Выполняется инициализация генератора случайных чисел.
  3. Значения массива b[N] заполняются числами от 0 до N-1.
  4. Значения матрицы a[N][M] заполняются случайными числами от 0 до 15.
  5. Цикл do-while используется для поиска количества вхождений каждого числа из массива b[N] в матрицу a[N][M].
  6. В каждой итерации цикла do-while происходит поиск первого вхождения числа i из массива b[N] в матрице a[N][M].
  7. Если число i встречается в матрице a[N][M] более одного раза, то выводится сообщение Chislo i > 1 stroki.
  8. После каждой итерации цикла do-while значение i увеличивается на единицу.
  9. В конце программы требуется ввод символа для завершения работы программы.
  10. Возвращается 0, что означает успешное завершение программы.

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


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

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

10   голосов , оценка 3.9 из 5