Рабочая Программа. Но Необходимо Ее Переписать В Немного Другом Виде.

  • Автор темы saymon
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

saymon

Гость
#1
нужно совместить эту часть программы с процедурой.
C++:
FILE *f2=fopen (argv[2],"w");

for (i=0;i<=Nx-Mx;i++)
{
for (j=0;j<=Ny-My;j++)
{
mas2[i][j]=sort(mas1,Mx,My,i,j);
fprintf(f2,"%d\t",mas2[i][j]);
}
fprintf (f2,"\n");
}
C++:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int sort(int **mas1,int Mx, int My, int i1 ,int j1)
{
int p[9];
int i,j,temp;

for(i=0;i<Mx;i++)
{
for(j=0;j<My;j++)
p[i*My+j]=mas1[i+i1][j+j1];
}

for (i=Mx*My;i>1;i--)
{
for (j=1;j<i;j++)
if (p[j]<p[j-1])
{
temp=p[j];
p[j]=p[j-1];
p[j-1]=temp;
}
}
return p[4];
}

int main(int argc, char *argv[])
{
if (argc!=3) {exit (1);}
int i,j,Nx,Ny;

FILE *f1=fopen (argv[1],"r");
fscanf (f1,"%d",&Ny);
fscanf (f1,"%d",&Nx);
int **mas1;
int **mas2;
mas1=new int*[Nx];
for (i=0;i<Nx;i++)
{	
mas1[i]=new int[Ny];
for (j=0;j<Ny;j++)
fscanf(f1,"%d",&mas1[i][j]);
}
mas2=new int*[Nx];
for (i=0;i<Nx;i++)
{	
mas2[i]=new int[Ny];		
}

int Mx=3,My=3;

FILE *f2=fopen (argv[2],"w");

for (i=0;i<=Nx-Mx;i++)
{
for (j=0;j<=Ny-My;j++)
{
mas2[i][j]=sort(mas1,Mx,My,i,j);
fprintf(f2,"%d\t",mas2[i][j]);
}
fprintf (f2,"\n");
}

for(i=0;i<Nx;i++)
delete []mas1[i];
delete []mas1;

for(i=0;i<Nx;i++)
delete []mas2[i];
delete []mas2;

fclose (f2);
printf ("\n File: out.txt");
return 0;
}
 
Статус
Закрыто для дальнейших ответов.