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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
#1

В какой половине строки больше букв "а"? - C++

08.04.2014, 15:05. Просмотров 174. Ответов 4
Метки нет (Все метки)

Помогите разобраться.
Заданную строку символов произвольно разделить на две части и определить в какой из них количество букв «a» больше. (Деление строки задается случайным числом, что зависит от длины строки).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 15:05     В какой половине строки больше букв "а"?
Посмотрите здесь:

C++ найти количество слов в которых две или больше буквы "с"
C++ Определить сколько из 20 чисел больше своих "соседей"
Определить длину введенной строки и количество букв "а" в ней C++
C++ Если строка содержит больше пяти латинских "a",заменить все латинские и русские буквы строки следующими по алфавиту символами.
В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о" C++
Удалить из заданной строки группы латинских букв "ХУ" C++
Посчитать количество букв "а" в последнем слове строки C++
C++ Определить, в какой фирме у "пятого самого высокооплачиваемого" зарплата больше
Вывод длины строки и количества букв "а" в ней C++
Подсчитать количество букв "к" в последнем слове строки C++
Написать условие "произведение двух целых чисел больше 30, и хотя бы один из сомножителей больше 8" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
11.04.2014, 23:11     В какой половине строки больше букв "а"? #2
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
    setlocale(LC_ALL, "Russian");
    char str[] = "KfkaaDela";
    int one;
    int j = 0;
    int k = 0;
    int a = strlen(str)+1;
    if (a % 2)
    {
        one = a / 2;
        
        for (int i = 0; i < one; i++)
            if (str[i] == 'a') j++;
        for (int i = one; i < a; i++)
            if (str[i] == 'a') k++;
        if (j>k) cout<<"В первой половине больше";
        else if (j < k) cout<<"Во второй";
    }
    else
    {
        one = a / 2;
        for (int i = 0; i < one; i++)
            if (str[i] == 'a') j++;
        for (int i = one; i < a; i++)
            if (str[i] == 'a') k++;
        if (j>k) cout << "В первой половине боьше";
        else if (j < k) cout << "Во второй";
    }
        else ...
Если равное количество допишешь сам.
daslex
12.04.2014, 00:47
  #3

Не по теме:

ред

Gygocopter
10 / 10 / 5
Регистрация: 05.02.2014
Сообщений: 124
12.04.2014, 01:00     В какой половине строки больше букв "а"? #4
Затупил что-то я, короче можно просто так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   setlocale(LC_ALL, "Russian");
    char str[] = "KfkaaDela";
    int one;
    int j = 0;
    int k = 0;
    int a = strlen(str)+1;
        one = a / 2;
        for (int i = 0; i < one; i++)
            if (str[i] == 'a') j++;
        for (int i = one; i < a; i++)
            if (str[i] == 'a') k++;
        if (j>k) cout<<"В первой половине больше";
        else if (j < k) cout<<"Во второй";
        else if (j = k) cout<<"Одинаково";
Будем считать, если в строке нечетное количество символов, вторая половина на 1 символ больше первой
.
daslex
1256 / 501 / 103
Регистрация: 02.08.2011
Сообщений: 2,514
12.04.2014, 01:10     В какой половине строки больше букв "а"? #5
Русская, Латинская, большая и маленькая учитываются.
Для ввода с клавиатуры.

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
#include <iostream>
#include <string.h>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
 
    char S[255];
 
    int x=0,y=0,a=0;
    cin.getline(S,255);
 
    a=strlen(S)/2;  //Дели строку на две части как нужно.
 
    for (int i=0;i<strlen(S);i++)
    {
      if (((( S[i]==-128)||S[i]==-96||S[i]==65||S[i]==97)) && (i<a)) x++;
      else if (((( S[i]==-128)||S[i]==-96||S[i]==65||S[i]==97)) && (i>a) && (strlen(S)%2>0))y++;
      else if (((( S[i]==-128)||S[i]==-96||S[i]==65||S[i]==97)) && (i>a+1) && (strlen(S)%2==0))y++;
    }
 
 
   if (x>y) cout<<"В первой больше\n";
   else if (x<y) cout<<"Во второй больше\n";
   else if (x==y) cout<<"Поровну\n";
 
    return 0;
}
Yandex
Объявления
12.04.2014, 01:10     В какой половине строки больше букв "а"?
Ответ Создать тему
Опции темы

Текущее время: 08:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru