Функции и аргументы функции (помогите пожалуйста)

  1. Написать функцию, которая возвращает 1, если количество четных элементов одномерного массива больше количества нечетных. В противном случае возвращает 0. Можно возвращать значение типа bool.
  2. Написать функцию, которая принимает строку. В качестве результата возвращает число символов в строке, которые повторяются (идут подряд). К примеру, строка «б аааа ббб сс», результат работы функции – число 6 (а -3, б – 2, с -1).

(на С++)

Чем помочь, в чем именно проблема?
Что пробовали делать, что получилось, что не получилось?

1 лайк
#include <iostream>

using namespace std;
bool Chet_Nechet(int* a, int n){
    int sumNCh=0;//нечотные
for(int i=0;i<n;i++)
 
if
    (a[i]%2!=0)//Проверка на нечетность
sumNCh++;
 if (n-sumNCh< sumNCh)
 return true;
 else
 return false;

}
int main()
{
 int *A;
int n,b,v,g;
cout<<"Ввести кол-во чисел : ";
cin>>n;
A = new int [n];
cout<<"Ввести числа массива : "<<endl;
for 
    (int i=0; i<n;i++)
    cin>>b;
 cout<<"Результат: "<<Chet_Nechet(A,n);


    return 0;
}
2.
#include <iostream>
#include <string>
using namespace std;
int Count_Povtor(string &s){
    int count=0;
    int i=1;
while(s[i]!='\0'){
  if (s[i] == s[i-1])
  count++;
  i++;
}
    
    return count  ;
}
int main()
{
string s1;
cout<<"Введите строку: "<<endl;
cin>>s1;
cout<<"Количество повторений:"<<Count_Povtor(s1)<<endl;


    return 0;
}

Можно sumNCh += a[i] % 2;.

Тут инвертировали результат относительно задания. И можно сразу return (n - sumNCh > sumNCh);.

В конце надо сделать delete[] A;.

Вводить надо в A[i].

В плюсовых строках нуль-терминал не является признаком конца. Или делать через вызов c_str или попробовать через итераторы решать.

1 лайк

Согласен всё сделано на коленке )
Но проверку прошло

Можно поподробнее в этом моменте, что значит плюсовые строки?

класс std::string, а не массив символов как в С.

но [] с C++11 вроде бы должен вернуть 0 в конце.
std::basic_string<CharT,Traits,Allocator>::operator[] - cppreference.com

2 лайка