Из файла создать массив, элементы которого являются числами-палиндромами и расположены после максимального значения в файле

Simak63

Создать двоичный файл и записать в него n целых чисел. Из файла создать массив, элементы которого являются числами-палиндромами и расположены после максимального значения в файле.
8 ответов

Simak63

Имеющийся код в студию.


Simak63

Из файла создать массив
то есть сначала нужно прочитать файл в память? не совсем ясно


Simak63

сначала вбить числа в файл. потом перейти в начало файла. искать максимальныое число из записанных. потом найти полиндромы после максимального и записать их в массив


Simak63

вроде файлы все одинаковы
Не-а! В винде файлы делятся на двоичные и текстовые. В двоичные данные записываются без изменений, при записи в текстовые символ '\n' заменяется последовательностью '\r''\n'.


Simak63

Не-а! В винде файлы делятся на двоичные и текстовые. В двоичные данные записываются без изменений, при записи в текстовые символ '\n' заменяется последовательностью '\r''\n'.
интересная особенность. всегда интересно было зачем "\r\n" , ведь эффект от "\n" такой же. Получается все "\n" неявно заменяются библиотекой/виндой на "\r\n" ?


Simak63

Получается все "\n" неявно заменяются библиотекой/виндой на "\r\n" ?
Именно так. При чтении - наоборот. Зачем это нужно - самому интересно. Видимо, историческое наследие от тупых терминалов, в которых возврат каретки и перевод строки разными командами выполнялись.


Simak63

я опять подниму этот вопрос.... у меня такая же задача и вот что есть у меня
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <alloc.h>
 int main()
  {clrscr();
   FILE*f;
   int i,n,k;
   int *a,*b;
   f=fopen("G:\\C\\abc.dat","wb"); // создает файл
   cout<<"kol-vo elementov n=";
   cin>>n;
   fwrite(&n,sizeof(int),1,f);
   for (i=0;i<n;i++)
    {cout<<"a=";
     cin>>a[i];
     fwrite(&a,sizeof(int),1,f);
    }
 
// выводит содержимое файла на экран
 
   f=fopen ("G:\\C\\abc.dat","rb");
   fread (&n,sizeof(int), 1, f);
   cout <<"n="<<n<<"\n";
   b=new int [n];
   fread (b, sizeof(int) ,n, f);
    for (i=0;i<n;i++)
     {
      if (a[i]>0)
       { for (k=0; k<n; k++)
      b[i]=a[i];
    }
      }
    for (i=0; i<n; i++)
     cout <<b[i]<<"\n";
     cout<<endl;  
     fclose(f);
     getch();
     return 0;
  }
не совсем понимаю как сделать такую сортировку. ПОМОГИТЕчто, совсем никаких идей?...


Simak63

BARSs оставь мне свои данные мы с тобой спишемся и обсудим эту тему