Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
1

Записать массив в файл и использовать его

23.06.2018, 13:05. Просмотров 753. Ответов 12
Метки нет (Все метки)

Всем привет.
Такая Задача:Оценка 3 методов сортировки одномерных массивов, нужно для каждого проверить массив из 1000,1500,2000,2500
элементов ,заполнить их нужно случайными числами.
Проблема вот в чём мы должны заполнить массив и использовать одинаковый для всех методов сортировки,
у меня сначала были мысли только копировать в другой массив,но это очень долго и наверно неправильно.
А потом подумал что можно записать в файл 4 массива и оттуда их использовать,сейчас читаю про это,но не понимаю как это сделать,помогите или посоветуйте,пожалуйста(На языке си не си++).
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2018, 13:05
Ответы с готовыми решениями:

Создать динамический массив. Заполнить его числами от 1 до n и записать его в файл.
создать динамический массив. Заполнить его числами от 1 до n и записать его в...

Заполнить массив в одной функции, а использовать его в другой
Подскажите, как оформить функции, которые имели бы доступ к элементам...

Создать список, записать его в файл и вывести в правильной кодировке
#include<stdio.h> #include<malloc.h> #include<string.h> typedef struct sp {...

Записать массив в файл
Доброго времени суток, помогите пожалуйста нужно записать массив в файл....

Записать массив в файл
Массив из 50-ти элементов заполнить случайными целыми числами из диапазона от 0...

12
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 13:39 2
если не запускать srand,или с одним значением srand(n) массивы вроде будут одинаковы
0
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 13:50  [ТС] 3
Biger18, Можете пример привести?
это типа сначала я пишу
Код
srand(time(NULL))
for(i=0;i<N;i++)
  mass1[i]=rand()%1000;
потом для другого пишу 
srand(1)
for(i=0;i<N;i++)
  mass2[i]=rand()%1000;
0
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 13:52 4
нет, всегда
C++
1
srand(0);
0
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 13:57  [ТС] 5
Biger18, мне нужно на чистом си; разве с srand(time(NULL)) не будет постоянно разные генерировать?
0
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 13:59 6
где у меня подобное?
0
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 14:03  [ТС] 7
Biger18, ахах,понял.
а можно целый пример?
т.е. вот так надо записать?
C
1
2
3
4
5
srand(0)
for(i=0;i<N;i++)
mass1[i]=rand()%1000;
for(j=0;j<N;j++)
mass2[j]=rand()%1000;//и второй
верно?
0
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 14:06 8
Лучший ответ Сообщение было отмечено Naglse как решение

Решение

C
1
2
3
4
5
6
srand(0);
for(j=0;j<N;j++)
mass1[j]=rand()%1000;
srand(0);
for(j=0;j<N;j++)
mass2[j]=rand()%1000;
//лучше провериться, если так, то mass2 не понадобится
1
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 16:46  [ТС] 9
Biger18, так мне его нужно для 3 сортировок использовать,массив то в процессе изменяться будет,разве нет?
поэтому другие нужны

Добавлено через 2 часа 35 минут
Biger18, а вы не могли бы ещё кое-что подсказать?
нужно время измерить сортировки
я использовал это
(сортировка методом выбора)
Код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
time_h start,end;//библиотека <time.h>
start=time(NULL);
for (int i = 0; i < N; i++)
{
    minPosition = i;
    for (int j = i + 1; j < N; j++)
        if (mass[minPosition] > mass[j])
            minPosition = j;
    tmp = mass[minPosition];
    mass[minPosition] = mass[i];
    mass[i] = tmp;
}
end=time(NULL);
printf("на сортировку потребовалось %f секунд.\n", difftime(end, start));
выдаёт постоянно 0 сек,видимо потому что массив маленький
не могли бы вы подсказать как в наносек-х выводить либо может быть есть другой способ время измерить?
0
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 17:04 10
обычно замеряют количество сравнений и обменов
0
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 17:07  [ТС] 11
Biger18, да,прост у меня задание измерить время секундомером,
я только начал изучать так что во многих вопросах туплю, больше идей нет?может быть можно это время в нано секунды перевести?
0
Biger18
151 / 143 / 87
Регистрация: 13.06.2018
Сообщений: 624
23.06.2018, 17:09 12
можно 1000... раз сортировать
0
Naglse
0 / 0 / 1
Регистрация: 24.03.2018
Сообщений: 33
23.06.2018, 17:26  [ТС] 13
Biger18, всмысле?

Добавлено через 9 минут
Biger18, нашёл ответ на форуме,спасибо
0
23.06.2018, 17:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2018, 17:26

Как записать массив в файл?
#include &lt;stdio.h&gt; #include&lt;windows.h&gt; #include &lt;string.h&gt; int main(void) ...

Записать в файл отсортированный массив
из main вызываю 2 подряд функции void aSort - берет массив и сортирует, тут...

В каждом предложении файла найти слово наибольшей длинны и записать его в другой файл
Здравствуйте. Хочу в файле, в каждой фразе(предполагается, что каждая фраза -...


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

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

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