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

Тема в разделе "MS Visual C++", создана пользователем saymon, 2 янв 2012.

Статус темы:
Закрыта.
  1. saymon

    saymon Гость

    нужно совместить эту часть программы с процедурой.
    Код (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;
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей