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

Поиск самой длинной строки в const char** - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Можно ли определить const без ее инициализации и почему? http://www.cyberforum.ru/cpp-beginners/thread1122915.html
1.можно ли определить const без ее инициализации и почему?? 2. почему без знаковые типы данных допускают увеличение диапозона предстовляемых или положительных значений??. в инете не нашел ответов
C++ Не выводится матрица не выводится матрица и a не равно 1, то есть поток не работает #include <process.h> #include <stdio.h> #include <iostream> #include <Windows.h> #include <conio.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1122875.html
C++ Определить количество положительных и количество отрицательных элементов до первого нуля. Найти ошибку в коде
В маcсиве A(n) (n<=7) хотя бы один элемент ноль. Определить количество положительных и количество отрицательных элементов до первого нуля! Вот код, только неправильно что-то: #include <iostream> #include <string> #include <math.h> using std::cout; using std::cin; using std::endl;
C++ Найти наименьший элемент матрицы
Привет помогите найти ошибку. Найти наименьший элемент матрицы X (m*n) и записать нули в ту строку и столбец, где он находится. Вот код: #include <iostream> using namespace std; int main() {
C++ Вычисления с комплексными числами http://www.cyberforum.ru/cpp-beginners/thread1122841.html
Собственно вот формула: y2=\frac{-u+v}{2}+i\frac{\sqrt{3}(u-v)}{2} Все данные известны кроме i. Как мне объяснили это комплексное число. Как прописать это в С++?
C++ Переставить элементы массива так, чтобы сначала располагались все нули, затем все двойки и, наконец, все единицы Добрый день ! У меня к вам просьба. Помогите решить задачу по с++ начинающему чайнику. :wall: Задача. В массиве A(N) каждый элемент равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались все нули, затем все двойки и, наконец, все единицы (дополнительного массива не заводить). подробнее

Показать сообщение отдельно
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
18.03.2014, 16:49  [ТС]     Поиск самой длинной строки в const char**
А вот мой код, может я чего еще не так делаю:
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
#include <iostream>
using namespace std;
 
template <typename T>
T maxn(T*, const int*);
 
template <>
char* maxn<char*>(char**, const int*);
 
int main(int argc, char **argv)
{
    //test arrays:
    const int ari_size = 6;
    int ari[ari_size] = {7, 11, 7, 9, 9, 21};
    const int ard_size = 4;
    double ard[ard_size] = {4.1, 0.01, 71.9, 43};
    const int ars_size = 6;
    const char* ars[ars_size] = {
        "Jammy house",
        "Extraterrestial intelligence",
        "Generally electrical",
        "Free Kenny",
        "Central substance",
        "Silent noise"
    };
    
    cout << maxn(ari, &ari_size);
    cout << endl;
    cout << maxn(ard, &ard_size);
    cout << endl;
    cout << maxn(ars, &ars_size);
    
    return 0;
}
 
template <typename T>
T maxn(T* ar, const int* limit) {
    T curmax = 0, absmax = 0;
    for (int i = 1; i < *limit; ++i)
        if (ar[i] > ar[i-1]) {
            curmax = ar[i];
            if (curmax > absmax)
                absmax = curmax;
        }
    return absmax;
}
 
template <>
char* maxn<char*>(char** ar, const int* limit) {
    int curmax = 0, absmax = 0, max_ind = 0, count = 0;
    for (int i = 0; i < *limit; ++i) {
        count = 0;
        while (ar[i][count])
            ++count;
        cout << count;
        if (count > curmax && count > absmax) {
            absmax = curmax = count;
            max_ind = i;
        }
        else if (count > curmax)
            curmax = count;
    }
    return ar[max_ind];     
}
Добавлено через 4 минуты
Цитата Сообщение от Ilot Посмотреть сообщение
Нет смысла передавать в функции указатели на встроенные типы.
Ок, сделал так:
C++
1
2
3
4
5
template <typename T>
T maxn(T*, const int&);
 
template <>
char* maxn<char*>(char**, const int&);
Все равно мне выдает последнюю строчку.
 
Текущее время: 17:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru