Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rusland1
45 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 22
#1

Файл: Как сделать так, чтобы числа в файл были прописаны не рандомно? - C++

30.10.2015, 09:58. Просмотров 197. Ответов 5
Метки нет (Все метки)

Здраствуйте, дан код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <cstdlib>
#include <math.h>
 
using namespace std;
 
 
//Создать файл, куда записать n целых чисел.Из файла создать массив, в
//котором поменять местами максимальное среди отрицательных и
//минимальное среди простых.
 
 
//Функция определения простоты числа
bool is_prime(int n) { 
double nn = n; 
for (int i = 2; i <= sqrt(nn); i++) 
if (n%i == 0) 
return false; 
return true; 
}
 
 
int main() {
    setlocale(LC_ALL, "Rus");
    int n, number;
    //Вспомогательные переменные
    bool flag1= false,flag2 = false;
    int ind = 0;
    int max_otric = INT_MIN, ind_max_otric;
    int min_prime = INT_MAX, ind_min_prime;
    //Для записи в файл
    FILE *in;
    fopen_s(&in,"test.txt", "wb");
    srand(time(NULL));//Для заполнения случайными числами
    //Ввод количества чисел
    cout << "Введите n:" << endl;
    cin >> n;
    int *arr = new int[n];
    cout << "Записано в файл: " << endl;
 
    //Создание случайных чисел и запись в файл
    for (int i = 1; i <= n; i++) {
        number = rand() % 101 - 50;
        fwrite(&number, sizeof(int), 1, in);
        cout << number << " ";
    }
    cout << endl;
    fclose(in);//Закрытие файла
 
    //Для чтения файла
    FILE *out;
    fopen_s(&out,"test.txt", "rb");
    //Чтение в динамический массив чисел с файла
    for (int i = 0; i < n; i++) 
        fread(&arr[i], sizeof(int), 1, out);
    fclose(out); 
 
    cout << "Считано из файла: " << endl;
    //Печать считанного файла
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    cout << endl;
 
    //Цикл для прохода по массиву
    for (int i = 0; i < n; i++) {
        //Нахождение максимального отрицательного числа и его индекса
        if (arr[i]>max_otric&& arr[i] < 0){
            max_otric = arr[i];
            ind_max_otric = i;
            flag1 = true;
        }
        //Нахождение минимального простого числа и его индекса
        if (arr[i] >0 &&is_prime(arr[i]) && arr[i]<min_prime){
            min_prime = arr[i];
            ind_min_prime = i;
            flag2 = true;
        }
    }
 
    //Если такие элементы нашлись,то меняем их местами, выводим информацию о них и выводим преобразованный массив, иначе сообщение об ошибке
    if (flag1&&flag2) {
        swap(arr[ind_max_otric], arr[ind_min_prime]);
        cout << "max отрицательное : " << max_otric << " порядок: " << ind_max_otric << endl;
        cout << "min простое : " << min_prime << " порядок: " << ind_min_prime << endl;
        //Вывод преобразованного массива
        cout << "Преобразованный массив: " << endl;
        for (int i = 0; i < n; i++)
            cout << arr[i] << " ";
        cout << endl;
    }
    else
        cout << "Ошибка: Нет искомых чисел"<<endl;
    
    
 
 
 
    system("pause");
    return 0;
}
1) Как сделать, чтобы числа в файл были прописаны не рандомно?
2)Как избавиться от функции?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2015, 09:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файл: Как сделать так, чтобы числа в файл были прописаны не рандомно? (C++):

Файл: Как сделать так, чтобы при запуске программы проверялось, существует ли файл? - C++
Как сделать так, чтобы при запуске программы проверялось, существует ли файл. Если да, то он обнуляется, если нет, то создается?

Как сделать так чтобы программа открывала txt файл? - C++
Допустим,я создал тхт файл и нужно его открыть с помощью запуска программы,как так сделать?

Создать заголовочный файл, использующие другие заголовочники так, чтобы они не были доступны в программе - C++
Здравствуйте! Хотел спросить, как можно как можно создать заголовочный файл, который используют другие заголовочные файлы, таким образом...

Как сделать так, чтобы функции были не вложенными? - C++
получается так, что сначала у меня идет функция int main(), потом int sum, и потом int maxx. Они получаются вложенными в int main(). Как...

Как в с++ сделать так, чтобы пользователь смог загрузить свой файл? - C++
В файле хранятся названия блюд. Каждая строка отдельное название. Написать программу, которая читает строки из файла в массив строк, и...

Как сделать так, чтобы файл вывода менялся, если изменится имя библиотеки (DLL)? - C++
Есть библиотека с именем example.dll Как сделать так, чтобы файл вывода менялся, если изменится имя библиотеки? В main с такой...

5
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
30.10.2015, 10:16 #2
А откуда они должны браться?
Зачем избавляться? Это усложнит программу.
0
rusland1
45 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 22
30.10.2015, 10:18  [ТС] #3
Их нужно прописать в коде. Функция не нужна по условию
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
30.10.2015, 10:20 #4
Массив динамический, его нужно как-то заполнять. Что в твоём задании?
0
rusland1
45 / 0 / 0
Регистрация: 27.04.2015
Сообщений: 22
30.10.2015, 10:22  [ТС] #5
Создать файл, куда записать n целых чисел. Из файла создать массив, в
котором поменять местами максимальное среди отрицательных и
минимальное среди простых.
0
nmcf
5544 / 4854 / 1647
Регистрация: 14.04.2014
Сообщений: 19,710
30.10.2015, 10:34 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Т. е. надо из файла числа брать? Ну делай цикл чтения вместо rand().
0
30.10.2015, 10:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2015, 10:34
Привет! Вот еще темы с ответами:

как сделать так, чтобы файл открывался, к примеру по тройному или четверному щелчку мыши? - C++
Друзья, есть какие-нибудь соображения? А то по умолчанию в винде файлы открываются по двойному щелчку, а я сделал чтобы открывались по...

Как, при разнесении программы на части, в С++, сделать так, чтобы подключаемый файл заметил компилятор? - C++
думаю, всё ясно из темы :) Добавлено через 47 секунд Т.е. куда помещать подключаемый файл?

Как сделать, чтобы числа были разные? - C++
Есть код: #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; using namespace std; int rolldice (void); int...

Вообщем нужно сделать так чтобы 1 массив заполнялся с клавиатуры а не рандомно - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;iostream&quot; #include &quot;ctime&quot; #include &quot;conio.h&quot; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru