Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Fujin
Сообщений: n/a
#1

Проверка отсортированности массива - C++

12.04.2009, 23:53. Просмотров 1116. Ответов 1
Метки нет (Все метки)

Привет всем,
стоит задача, которую я в Делфи сделал, а надо в С++. В с++ я полный бегиннер. Может поможет кто-то?
Задача такая: нужно определить отсортирован ли массив числел. Массив находится в тектовом файле.

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2009, 23:53     Проверка отсортированности массива
Посмотрите здесь:

Проверка границ массива C++
C++ Проверка массива на наличие совпадающих элементов
Проверка массива на пустоту C++
Проверка на повторный ввод элемента массива C++
Проверка массива C++
C++ Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
C++ Проверка строкового массива
Проверка содержимого массива C++
Проверка на заполненность/переполненность массива C++
C++ Создайте класс динамического массива, в котором реализована проверка выхода за границы массива
Проверка класса динамического массива строк C++
C++ Проверка каждого элемента массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
darkAngel
Технофашист
214 / 195 / 4
Регистрация: 11.03.2009
Сообщений: 859
13.04.2009, 09:15     Проверка отсортированности массива #2
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
// Функция GET читает файл строками
String get(FILE *dat){   
// В качестве аргумента ф-ия принимает дескриптор открытого файла   
String G; 
char g[25];   
fgets(g, 25, dat);   
feof(dat) ? NULL : g[strlen(g)-1]=NULL;   
for (int k=0; k<strlen(g); k++) 
G+=g[k];   
return G;             
// Ф-ия возвращает переменную G, содержащую
}                        
// очередную, прочитанную, строку из файла***
int main(int argc, char* argv[]){   
FILE *dat;                  
// дескриптор файла   
int ch[100];                
// Массив для чисел
 int i = 0;                  // 
Счётчик для массива   
bool ok;
*   dat=fopen("1.txt", "a+");   
// Открываем файл 1.txt*   
while (feof(dat)==0) 
ch[i++] = StrToInt(get(dat));    
// Заполняем массив ch                                                         // числами из файла*   
// Определяем, уменьшаются или увеличиваются члены массива   
for (int j=0; j<i; j++)      
if (ch[j] > ch[j+1])      {                       
// Если первые члены массива стремятся к уменьшению,         
ok = false;          
// то переменная ok принимает значение false         
break;               
// остановка цикла      
}      else if (ch[j] < ch[j+1])           { 
                 // Если первые члены массива стремятся к увеличению,              
ok = true;           
// то переменная ok принимает значение true              
break;           
}
**   // Проверяем остальные члены массива   
for (int j=0; j<i; j++)   {      
if (ok) 
if (ch[j]>=ch[++j]);     
// Проверка на сортировку по уменьшению               
else { 
i = 666; 
break;
} // Если порядок нарушен, то i = 666*      
if (!ok) 
if (ch[j]<=ch[++j]);               
else { 
i = 666; 
break;
} 
// Проверка на сортировку по увеличению   
}
**   if (i == 666) 
cout << "Massiv ne otsortirovan";  
// Если i == 666, то сортировка отстутствует   
else cout << "Massiv otsortirovan";
*   getch();   
return 0;
}

Не забудь подключить библиотеки для работы с консолью:

#include <conio.h>
#include <iostream.h>


Ах да, вот файлы с числами, которые должны лежать в папке с прогой.
1.txt - файл с отсортированными по возрастанию числами
2.txt - числа в разноброс (переменуй его в 1.txt , чтоб прога его могла прочесть)
Вложения
Тип файла: txt 1.txt (48 байт, 20 просмотров)
Тип файла: txt 2.txt (48 байт, 19 просмотров)
Yandex
Объявления
13.04.2009, 09:15     Проверка отсортированности массива
Ответ Создать тему
Опции темы

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