Переписать код сортировки массива с Pascal - C (СИ)
Формулировка задачи:
Ребята-программисты друзья пожалуйста помогите человеку сдать лабу до нового года. Переведите этот код Паскаля в Си.
var
a:array[1..200]of char;
b:array[1..5]of char;
i,n,j,k:integer;
t:char;
begin
randomize;
writeln('ishodnyj massiv a');
for i:=1 to 200 do
begin
n:= random(161)+40;
a[i]:=chr(n);
write(a[i],' ');
end;
writeln('ishodnyj massiv b');
for i:=1 to 5 do
begin
n:= random(161)+40;
b[i]:=chr(n);
write(b[i],' ');
end;
for i:=1 to 5 do
for j:=1 to 200 do
if b[i]=a[j]then
begin
inc(k);
break;
end;
writeln;
writeln('k=',k);
if k=5 then
for i:=1 to 200 do
for j:=1 to 5 do
if a[i]=b[j]then a[i]:=' ';
for i:=1 to 200 do
for j:=2 to 200 do
if a[j]<a[j-1]then
begin
t:=a[j];
a[j]:=a[j-1];
a[j-1]:=t;
end;
writeln('novyj massiv a');
for i:=1 to 200 do
write(a[i],' ');
for i:=1 to 5 do
for j:=2 to 5 do
if b[j]<b[j-1]then
begin
t:=b[j];
b[j]:=b[j-1];
b[j-1]:=t;
end;
writeln('novyj massiv b');
for i:=1 to 5 do
write(b[i],' ');
readln;
end.Решение задачи: «Переписать код сортировки массива с Pascal»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
char a[200],b[5];
int i,n,j,k;
char t;
int main () {
randomize();
printf("\nishodnyj massiv a\n");
for (i=0;i<200;i++) {
a[i]=random(161)+40;;
printf ("%c ",a[i]);
}
printf ("\nishodnyj massiv b\n");
for (i=0;i<5;i++) {
b[i]=random(161)+40;
printf ("%c ",b[i]);
}
for (i=0;i<5;i++)
for (j=0;j<200;j++)
if (b[i]==a[j]) {
k++;
break;
}
printf ("\nk=%d",k);
if (k==5)
for (i=0;i<200;i++)
for (j=0;j<5;j++)
if (a[i]==b[j]) a[i]=' ';
for (i=0;i<200;i++)
for (j=1;j<200;j++)
if (a[j]<a[j-1]) {
t=a[j];
a[j]=a[j-1];
a[j-1]=t;
}
printf ("\nnovyj massiv a\n");
for (i=0;i<200;i++) printf ("%c ",a[i]);
for (i=0;i<5;i++)
for (j=1;j<5;j++)
if (b[j]<b[j-1]) {
t=b[j]; b[j]=b[j-1]; b[j-1]=t;
}
printf ("\nnovyj massiv b\n");
for (i=0;i<5;i++) printf ("%c ",b[i]);
getchar ();
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdlib.h и printf.h
- Объявляются массивы a и b, а также переменные i, n, j, k и t
- В функции main() генерируются случайные значения для массивов a и b и выводятся на экран
- Для каждого элемента массива b ищется соответствующий элемент в массиве a. Если такой элемент найден, то счетчик k увеличивается на единицу
- Если k равно 5, то для каждого элемента массива a заменяются соответствующие элементы массива b на пробел
- Производится сортировка массива a по возрастанию с помощью алгоритма сортировки пузырьком
- Выводятся отсортированный массив a и массив b
- Программа ожидает нажатия клавиши для завершения работы