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

Перегрузка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка out_of_range http://www.cyberforum.ru/cpp-beginners/thread962307.html
Всем привет. Имеетмся матрица, реализованная как std::vector <std::vector <int>>. Мне нужно найти сумму всех соседних элементов для каждого элемента матрицы. В общем случае это сумма 8 элементов, но для граничных элементов это количество меньше. Как мне написав алгоритм для общего случая обрабатывать выход за границу, так чтобы при выходе за границу просто сситались след элементы. Знаю есть ...
C++ Вызов приложения на C++ и передача ему управления Программа которая должна из своего API вызвать приложение на C++ и передать ему управление. В API программы сделал так, записал поинтер приложения в файл. Главное что не получается это потом этот поинтер прочитать в C++ и присвоить его объекту. int _tmain(int argc, _TCHAR* argv) { int p; std::ifstream in ("e:\\my.txt"); in>>p; http://www.cyberforum.ru/cpp-beginners/thread962301.html
C++ как задать цикл
є приклад y=(tan(2*t-3*t))/(t+3); как задать крок цикла? t>=-0.5, дельта t, n=5. Я непонимаю для чего n. Как его использовать. Помогите
C++ Необходимо запускат на старых версиях Windows
В дополнительных требованиях к заданию стоит требование запуска приложения на всех ОС Win32. Старался писать код достаточно старыми конструкциями, но Dev-C++ Portable выдал сообщение, что необходим стандарт ISO C++ 2011 года. Посмотрите пожалуйста, как я могу избавиться от стандарта 2011 года.. или чем мне скомпилировать мой код, чтобы оно работало на всех Win32? Заранее спасибо! #include...
C++ Списки. Найти сумму первого и последнего элемента http://www.cyberforum.ru/cpp-beginners/thread962295.html
Двунаправленный список.Найти сумму первого и последнего элемента.Заранее спасибо
C++ написать программу использую только побитовые операции и выполнить на текстовых данных Определить длину самой длинной цепочки единиц в переменной unsigned long a подробнее

Показать сообщение отдельно
TenGreen
1 / 1 / 0
Регистрация: 22.03.2013
Сообщений: 12
25.09.2013, 18:52     Перегрузка
Написать программу на языке C++, реализующию перегруженную функцию z_cnt, получа-
ющую в качестве аргумента или массив целых чисел, или символьную строку, и возвраща-
ющую количество подсчитанных элементов. Признаком конца числового массива считать
элемент с нулевым значением (добавить при инициализации массива). Словом считать по-
следовательность символов, для которых функция isalpha возвращает истину. Функция не
должна изменять переданные ей массивы и должна это гарантировать.
Для массива целых чисел функция должна подсчитать максимальное количество иду-
щих подряд чётных чисел, а для символьной строки – количество слов, в которых две
последние буквы одинаковы.
Пример:
[ 1 2 2 23 4 2 14 9 18 889 ] - 3
"0x12 SSSS 123 43h e12 0 12gt txx" - 2
В функции main следует подготовить исходные данные, вызвать оба варианта функ-
ции, а затем вывести исходные данные и результаты. Предусмотреть меры против аварий-
ного завершения программы из-за неправильно указанных аргументов.

Задание, и код к нему.

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
#include <iostream> // для cout
using namespace std;
 
 
int xcount (const int *c);
int xcount (const char *d);
 
int main()
{
 
    const int a[] = {1, 2, 2, 23, 4, 2, 14, 9, 18, 889, 0};
    const char *d = "0x12 SSSS 123 43h e12 0 12gt txx";
 
     cout << "String: \"" << d << "\"\n";
     cout << "int array: " ;
    for( int i=0; a[i]!=0; i++ )
      cout << a[i] << ' ';
 
    cout << "\nint array: " << xcount( a ) << endl;
    cout << "string:    " << xcount( d ) << endl;
 
    return 0;
}
 
int xcount(const int *c)
{
  int max, n;
  int i;
  max=n=0;
  for (i=0; c[i]; i++)
    if ((c[i]%2==0)&&(c[i+1]%2)) {
        n++;
        if(n > max)
        max=n; n==0;
            }
return max;
}
 
int xcount (const char *d)
{
 
    int i,n=0;
    if( !d || ! d[0] || !d[1] )
      return 0;
    /*int nwords = 0;
    int inword = 0;*/
 
    for (i=2; d[i]; i++)
      if ((isalpha(d[i])==0)&&(isalpha(d[i-1])!=0)&&(d[i-2]==d[i-1]))n++;
    if((d[i]=='\0')&&(d[i-2]==d[i-1])) n++;
         /*{
          if (!inword)
            inword = 1;
            } else {
            if (inword)
              nwords++;
            }*/
 
    return n;
}
Собственно вопрос - правильно ли я написал програмку и можно ли её как то облагочестить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru