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

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

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

В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о" C++
C++ работа со строкой: как заменить сочетание букв "л*г" на "лаг"
Перебрать все слова длиной не более n, составленные из букв "а" и "b" C++
C++ Найти номер последней по порядку строки в матрице, содержащей наибольшее количество букв "ш", "щ"
Посчитать количество букв "а" в последнем слове строки 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
1084 / 494 / 101
Регистрация: 02.08.2011
Сообщений: 2,408
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     В какой половине строки больше букв "а"?
Ответ Создать тему
Опции темы

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