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

Предлагаю модераторам свои функции для FAQ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дан двумерный массив С[10][10], поменять местами элементы первого и последнего столбца, второго и предпоследнего и так далее http://www.cyberforum.ru/cpp-beginners/thread82681.html
Дан двумерный массив С, поменять местами элементы первого и последнего столбца, второго и предпоследнего и так далее.Помогите пожалуйста!
C++ задание Привет Всем! помогите срочно плзз решить! Задача такая: Даны действительные числа a,b,c. Получить max(a,a+b)+max(a,b+c)) и всё это делённое на (1+max(a+bc,1,15), т.е ... http://www.cyberforum.ru/cpp-beginners/thread82676.html
C++ DirectDraw отказывается работать в окне
Всем доброго времени суток! У меня такая проблема: DirectDraw не хочет в окне работать.Вроде инициализирую правильно,полноэкранный режим без проблем идет.В оконном создаю 2 несвязанные поверхности...
Задача на строки ( C++
Привет всем) Не могу решить задачу: "Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова". Помогите с решением пожалуйста. заранее...
C++ Чтение из файла в строку http://www.cyberforum.ru/cpp-beginners/thread82643.html
Всем привет! Подскажите, пожалуйста, как прочитать весь текст из файла в переменную string! что-то туплю, не могу понять.. спасибо!
C++ My_int Реализовать класс My_int для работы с целыми числами, который ведет себя в точности как int,за исключением того, что единственные допустимые операции - это плюс (унарный и бинарный), минус (унарный и... подробнее

Показать сообщение отдельно
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
05.01.2010, 15:01
Цитата Сообщение от МедведЪ Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    //проверка на полиндром
    bool polidrom(char s[100000]){
  int x=0;
        for(int i=0,j=strlen(s)-1;j>=strlen(s)/2,i<strlen(s)/2;j--,i++)
 
        {               
                if(s[j]==s[i])
                 x=1; 
                else
                 break;
        }       
 
        if(x)        return 1;
        else    return 0;}
В цикле на каждую итерацию используется двойной прогон strlen. А если строка будет в тысячи символов и функцию надо вызывать часто? Это будет э-э-э-сто-о-о-о-нский участок программы. Записать это можно проще.
C
1
2
3
4
5
6
7
8
int is_palindrom(char *s)
{
    int i, j;
    for(i = 0, j = strlen(s) - 1; i < j; i++, j--)
        if(s[i] != s[j])
            break;
    return (i >= j) ? 1 : 0;
}
И раз уж ты взялся за классы, то лучше соблюдать концепцию С++ и везде использовать строки класса string, а не массивы char'ов.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru