Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdio.h"
- #include "windows.h"
- #include <iostream>
- #include <vector>
- #include <cstdlib>
- #include <fstream>
- using namespace std;
- vector<int> Sort_array(int Matrix[],int n){
- vector<int> sort;//вектор для сортировки массива по условию
- int min=Matrix[0];
- int imin;//index of minimum
- for(int i=0;i<n;i++){
- if(Matrix[i]<min){
- min=Matrix[i];
- imin=i;
- }
- }
- if (imin%2==0){
- for (int i=2;i<n;i+=3){
- Matrix[i]=0;}
- }
- else{
- for (int i=2;i<n;i+=3){
- Matrix[i]=Matrix[0]+Matrix[n-1];}
- }
- for(int i=0;i<n;i++){
- sort.push_back(Matrix[i]);}
- for(int i=0;i<sort.size();i++){
- cout<<i<<" ";}
- cout<<endl;
- for(int i=0;i<sort.size();i++){
- cout<<sort[i]<<" ";
- }
- return sort;
- }
- int* ReadRecord(int n){
- int *Matrix = new int [n];
- for (int i=0;i<n;i++){
- Matrix[i]=rand()%100;
- }
- FILE *fp;
- fp=fopen("NAME.txt","w");//файл искать там куда сохраняешь проект вижуал (те имя Visual>project_name>project_name(FILE)).
- //запись в файл
- ofstream fout ("NAME.txt");
- if(!fout.is_open()){cout<<"Файл не найден!"<<endl;}
- else{
- for (int i=0;i<n;i++){
- fout<<i<<" ";
- }
- fout<<endl;
- for (int i=0;i<n;i++){
- fout<<Matrix[i]<<" ";}
- }
- fseek(fp,0,SEEK_END);
- int _size=ftell(fp);
- char *buff=new char[_size+1];
- fseek(fp,0,SEEK_SET);
- fclose(fp);
- //чтение из файла
- fout.close();
- ifstream fin ("NAME.txt");
- if(!fin.is_open()){cout<<"Файл не найден!"<<endl;}
- else{
- int err=fread(buff,_size,1,fp);}
- fin.close();
- vector<int> localv;
- int locv,flag;
- for (int i=0;i<_size+1;i++){
- flag=0;
- char loc[10];
- if (buff[i]>='0' && buff[i]<='9'){
- flag=1;
- for(int j=0;j<sizeof(buff)-1;j++){
- if(buff[i+1]!=' '){
- loc[j]=buff[i];
- loc[j+1]=buff[i+1];
- i++;}
- if(buff[i+1]==' '){
- break;
- i=j;
- }
- }
- locv=atoi(loc);//atoi объединяет цифры в число на пример были 2 и 7, станет 27
- //free (loc);
- //loc[0]='/0';
- memset(loc, '\0',sizeof(loc));//очищаем временный массив для перезаписи
- memset(buff, '\0', sizeof (buff));//очищаем массив для перезаписи
- }
- if(flag==1){
- localv.push_back(locv);}
- }
- for(int i=0;i<localv.size();i++){
- localv[i]=Matrix[i];
- }
- return Matrix;
- }
- void RecordOnly(vector<int> sort){
- FILE *fp;
- fp=fopen("NAME1.txt","w");
- ofstream fout ("NAME1.txt");
- if(!fout.is_open()){cout<<"Файл не найден!"<<endl;}
- else{
- for(int i=0;i<sort.size();i++){
- fout<<i<<" ";}
- fout<<endl;
- for (int i=0;i<sort.size();i++){
- fout<<sort[i]<<" ";
- }}
- fclose(fp);
- }
- int main()
- {
- setlocale(LC_ALL, "rus");
- int n;
- cout<<"ВВедите кол-во элементов:"<<endl;
- cin>>n;
- int* Matrix;
- vector<int> sort;
- Matrix=ReadRecord(n);
- sort=Sort_array(Matrix,n);
- RecordOnly(sort);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement