Помогите преобразовать код Pascal в C++.
const nmax=750;
var a:array[1..nmax,1..nmax]of integer;
m,n,i,j,k,max,jmax,imax,min,imin,jmin,res:integer;
f:text;
begin
assign(f,'input.txt');
reset(f);
read(f,n,m);
for i:=1 to n do
for j:=1 to m do
read(f,a[i,j]);
close(f);
res:=0;
for i:=1 to n do
begin
min:=a[i,1];
jmin:=1;
for j:=1 to m do
if a[i,j]<min then
begin
min:=a[i,j];
jmin:=j;
end;
max:=a[1,jmin];
imax:=1;
for k:=1 to n do
if a[k,jmin]>max then
begin
max:=a[k,jmin];
imax:=i;
end;
if min=max then inc(res);
end;
assign(f,'output.txt');
rewrite(f);
write(f,res);
close(f);
end.
можно попробовать программку p2c, вот что получается:
конечно руками надо будет поправить
/* Output from p2c 2.00.Oct.15, the Pascal-to-C translator */
/* From input file "a.pas" */
#include <p2c/p2c.h>
#define nmax 750
main(argc, argv)
int argc;
Char *argv[];
{
long a[nmax][nmax];
long m, n, i, j, k, max, jmax, imax, min, imin, jmin;
long res = 0;
FILE *f = NULL;
long FORLIM, FORLIM1;
/* p2c: a.pas, line 6: Warning:
* Don't know how to ASSIGN to a non-explicit file variable [207] */
PASCAL_MAIN(argc, argv);
assign(f, "input.txt");
rewind(f);
fscanf(f, "%ld%ld", &n, &m);
FORLIM = n;
for (i = 1; i <= FORLIM; i++) {
FORLIM1 = m;
for (j = 1; j <= FORLIM1; j++)
fscanf(f, "%ld", &a[i-1][j-1]);
}
if (f != NULL)
fclose(f);
f = NULL;
FORLIM = n;
for (i = 1; i <= FORLIM; i++) {
min = a[i-1][0];
jmin = 1;
FORLIM1 = m;
for (j = 1; j <= FORLIM1; j++) {
if (a[i-1][j-1] < min) {
min = a[i-1][j-1];
jmin = j;
}
}
max = a[0][jmin-1];
imax = 1;
FORLIM1 = n;
for (k = 1; k <= FORLIM1; k++) {
if (a[k-1][jmin-1] > max) {
max = a[k-1][jmin-1];
imax = i;
}
}
if (min == max)
res++;
}
/* p2c: a.pas, line 34: Warning:
* Don't know how to ASSIGN to a non-explicit file variable [207] */
assign(f, "output.txt");
/* p2c: a.pas, line 35: Note: REWRITE does not specify a name [181] */
if (f != NULL)
rewind(f);
else
f = tmpfile();
if (f == NULL)
_EscIO(FileNotFound);
fprintf(f, "%12ld", res);
fclose(f);
f = NULL;
exit(EXIT_SUCCESS);
}
/* End. */
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
По умолчанию при запуске с++ кода открывается внешняя консольЯ же хочу видеть вывод моей программы в качестве одной из вкладок в нижнем поле...
В объектно ориентированных языках по типу Java/C# память при создании выделяется: для примитивов(в stack), для объектов(в heap)Соответственно жизненный...