Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2008, 21:40   #11
kermit
Пользователь
 
Аватар для kermit
 
Регистрация: 08.06.2008
Сообщений: 14
По умолчанию

А насчет сортировки неподскажете??
kermit вне форума Ответить с цитированием
Старый 08.06.2008, 23:55   #12
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

А что у вас с сортировкой не выходит, какие именно вопросы возникают?
filosof_x86 вне форума Ответить с цитированием
Старый 09.06.2008, 00:12   #13
kermit
Пользователь
 
Аватар для kermit
 
Регистрация: 08.06.2008
Сообщений: 14
По умолчанию

Код:
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <stdlib.h>

#include <conio.h>

using namespace std;

#define N 30
#define M 8

void CreatInFile(const char *InFile, int *array);
void ViewFile(const char *InFile);
void CreatOutFile(const char *InFile, const char *OutFile, int *array);

int main()
{
    const char first_file[] ={"1.txt"};
    const char second_file[]={"2.txt"};

    int array[N][M];
    int *pt;
    pt=&array[0][0];             

    CreatInFile(first_file, pt); 
    ViewFile(first_file);
    CreatOutFile(first_file ,second_file, pt);
    ViewFile(second_file);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

void CreatInFile(char const *File, int *array)
{
     int i,j;
     ofstream outFile(File);
     for(i=0; i<N; i++)
     {
            for(j=0; j<M; j++)
            {
                     *((int *)array+i*M+j)=50-rand()%100;//5.25;
                     outFile.width(4);
                     outFile<< *((int *)array+i*M+j);
                     }
            outFile<<endl;
     }
     outFile<<endl;       
     outFile.close();
}

void ViewFile(const char *File)
{
     ifstream file(File);
     cout<< file.rdbuf();
     file.close();
}

void CreatOutFile(const char *InFile, char const *OutFile, int *array)
{
     int i, j;
     int temp1, temp2;
     int min;// = temp1= *array;
     int max;// = temp2=*array; 
     
     ifstream inFile(InFile);
     ofstream outFile(OutFile);
     
     int k;
     
     for(i=0; i<N; i++)
     {
              for(j=0; j<M; j++) {inFile>> *(array+i*M+j);}
     }
     inFile.close();
     
     for(i=0; i<N; i++)
     {
              min=array[i][0];                                           //
              max=array[i][7];                                          // 
              for(j=0; j<M; j++)                                        //
              {                                                              //
                                                                              //           ЭТО СОРТИРОВКА
                       if(min >= array[i][j]) min=array[i][j];      //
                       if(max < array[i][j]) max=array[i][j];      //
                       array[i][0]=min;                                  //
                       array[i][7]=max;                                 //
              }
              
     }
     for(i=0; i<N; i++)
     {
              for(j=0; j<M; j++)
              {
                       outFile.width(4);
                       outFile<<*(array+i*M+j);
              }
              outFile<<endl;
     }
     outFile.close();
}

!) - это сортировка, посмотрите пожалста.
2) почему не могу обращатся к элементам массива так: array[i][7]
у меня компилятор вот такую ошибку выдает:
Код:
80 C:\Dev-Cpp\my_project\temp\MAIN.CPP invalid types `int[int]' for array subscript

Последний раз редактировалось kermit; 09.06.2008 в 00:16.
kermit вне форума Ответить с цитированием
Старый 09.06.2008, 02:21   #14
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Примерно так это должно выглядеть:
Код:
#include <fstream>
#include <iostream>

#define N 30
#define M 8

void CreatInFile(const char *InFile, int array[N][M]);
void ViewFile(const char *InFile);
void CreatOutFile(const char *InFile, const char *OutFile, int array[N][M]);

int main()
{
  const char first_file[] ={"1.txt"};
  const char second_file[]={"2.txt"};

  int array[N][M];
  CreatInFile(first_file, array); 
  ViewFile(first_file);
  CreatOutFile(first_file ,second_file, array);
  ViewFile(second_file);

  system("PAUSE");
  return EXIT_SUCCESS;
}

void CreatInFile(char const *File, int array[N][M])
{
  int i,j;
  std::ofstream outFile(File);
  for(i=0; i<N; i++)
  {
    for(j=0; j<M; j++)
    {
      array[i][j]=50-rand()%100;//5.25;
      outFile.width(4);
      outFile<< array[i][j];
    }
    outFile<<std::endl;
  }
  outFile<<std::endl;       
  outFile.close();
}

void ViewFile(const char *File)
{
  std::ifstream file(File);
  std::cout<< file.rdbuf();
  file.close();
}

void CreatOutFile(const char *InFile, char const *OutFile, int array[N][M])
{
  int i, j;
  int min;// = temp1= *array;
  int max;// = temp2=*array; 

  std::ifstream inFile(InFile);
  std::ofstream outFile(OutFile);

  for(i=0; i<N; i++)
  {
    for(j=0; j<M; j++) {inFile>> array[i][j];}
  }
  inFile.close();

  for(i=0; i<N; i++)
  {
    min=array[i][0];                        
    max=array[i][7];                         
    for(j=0; j<M; j++)                      
    {                                       
      if(min > array[i][j]) min=array[i][j];
      if(max < array[i][j]) max=array[i][j];
      array[i][0]=min;                      
      array[i][7]=max;                      
    }

  }
  for(i=0; i<N; i++)
  {
    for(j=0; j<M; j++)
    {
      outFile.width(4);
      outFile<<array[i][j];
    }
    outFile<<std::endl;
  }
  outFile.close();
}
Однако то, что вы называете сортировкой таковой не является, т.к. под сортировкой подразумевается выстраивание всех элементов в определенной последовательности. Вы же находите максимальное и минимальное значение и записываете их каждое на свое место.
filosof_x86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Yar Помощь студентам 2 02.06.2008 08:03
Работа с файлами Stiker Общие вопросы C/C++ 1 10.04.2008 22:47
Работа с файлами ShVad Общие вопросы Delphi 4 03.02.2007 10:43
Работа с файлами El_Bint0 Помощь студентам 1 20.12.2006 02:07