Переписать в 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;
- }
Объяснение кода листинга программы
- Объявлены массивы a[M][N], b[N], c[N] для хранения данных.
- Выполняется инициализация генератора случайных чисел.
- Значения массива b[N] заполняются числами от 0 до N-1.
- Значения матрицы a[N][M] заполняются случайными числами от 0 до 15.
- Цикл do-while используется для поиска количества вхождений каждого числа из массива b[N] в матрицу a[N][M].
- В каждой итерации цикла do-while происходит поиск первого вхождения числа i из массива b[N] в матрице a[N][M].
- Если число i встречается в матрице a[N][M] более одного раза, то выводится сообщение
Chislo i > 1 stroki
. - После каждой итерации цикла do-while значение i увеличивается на единицу.
- В конце программы требуется ввод символа для завершения работы программы.
- Возвращается 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д