JamesBond008
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Привет, помогите пожалуйста с задачкой, вступление написал, а основной алгоритм не догоняю как сделать Пусть значения границ n отрезков [ai,bi] (i=1,2,...,n) числовой прямой заданы в виде двух массивов {ai} и {bi}. Найти отрезки с наибольшей и наименьшей длинами и определить пересекаются ли они. #include <iostream> #include <string>//Использование класса строк //#include <cstdio> #include <cstring>//Использование быблиотечных функций работы со строками #include <cctype> #include <fstream>//Заголовок необходим для работы с файлами #define const int pok=0; using namespace std; int main() { /*Объявление строковых динамических массивов*/ string a; string str1,str2; /*..........*/ int i=0;//Объявление целой переменной char r[80],w[20];//Объявление символьного одномерного массива длиной 80 символов char otv;//Объявление символьной переменной cout << "PRIVET !!! Eto soverhenno bezpoleznaya programma !!! =)\n";//Вывод приветствия metka1://Метка оператора goto cout << "\nVvesti I.D. iz fyala? "; cin >> otv;//Запрос на ввод данных из файла switch (otv) { case ('y'): case ('Y'): { fstream both("test.txt");//Открытие файла для ввод\вывода if(!both)//Проверка на доступ к файлу { cout << "\nNe MOGY otkrit\' fail!!!\n"; return 1; } both >> r;//Считывание массива both.close();//Закрытие файла } break; case('n'): case('N'): { /*ввод исходный данных вручную*/ loop1: cout << "\nVvedite stroky dlinnoi menee 80-ti simvolov: \n"; cout << "\n"; gets(r);//ввод массива с клавиатуры /*проверка на пробелы в массиве*/ for (i=0;r[i];++i) { if(r[i]==' ') { cout << "\a\a\a\nVvedite zanovo bez probelov!!!\n"; goto loop1; } } /*..........*/ if (strlen(r)==0)goto loop1; /*..........*/ } break; default: { cout << "\a\a\a";//звуковой сигнал об ошибке goto metka1;//оператор goto } } cout << "\nDlina stroki ravna: " << strlen(r) << "\n\n\n";//вывод длины массива int len=strlen(r); for (i=0;r[i];i++)r[i]=tolower(r[i]);//все прописные буквы делаются строчными a=r;//сливаем все значения (кроме '/0') в массив а for(i=0;i<80;i++){r[i]=' ';} int k=1,j=0,c=0,p,q=0,q1=0,i1;//объявление целых переменных //char pok; if(len==1){cout << a; goto loop3;} /*основной алгоритм решения задачи*/ |