Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
 Аватар для tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19

Посчитать, сколько гласных букв в строке

26.09.2011, 19:44. Показов 5640. Ответов 45
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет))
ребята помогите пожалуйста немогу разобраться вот задачкинужно написать только на С а не на С# или С++) задача 1 Дана непустая строка S.Посчитать, сколько гласных букв в строке.
задача2 Выяснить все ли буквы слова Х, стоящие на нечётных местах различны
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.09.2011, 19:44
Ответы с готовыми решениями:

Посчитать сколько в фамилии гласных букв
Подскажите пожалуйста,как в фамилии например Цыганова,Посчитать сколько в фамилии гласных букв?

Подсчитать сколько гласных букв в строке
Подсчитать сколько гласных букв в строке. #include <stdio.h> #include <conio.h> int main() { char...

Найти сколько гласных букв в строке
1) найти сколько гласных букв в строке!! Алфавит английский! Можно просто функцию нахождения! 2) в массиве A найти элемент A такое что...

45
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.09.2011, 08:34
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от accept Посмотреть сообщение
s[0] - нечётная позиция
0 - четное число. Где в задаче сказано, что нумерация с 1? Ладно, глупостью только занимаемся.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
27.09.2011, 08:43
Цитата Сообщение от Thinker
0 - четное число. Где в задаче сказано, что нумерация с 1? Ладно, глупостью только занимаемся.
s[0] - 1ая позиция (так во всех задачах)
а когда речь идёт про индексы, это уточняют особым образом
задача такого вида подходит для многих языков программирования, и не во всех из них индексация сделана одинаково
0
 Аватар для tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19
27.09.2011, 18:57  [ТС]
hodas4, сам не лучше
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
27.09.2011, 19:24
Цитата Сообщение от Thinker Посмотреть сообщение
0 - четное число. Где в задаче сказано, что нумерация с 1?
При всём уважении, но в этом плане по-моему accept прав. Людям привычнее счёт с единицы начинать, а не с нуля. То есть первый символ в слове - всё-таки первый, а не нулевой... Ну а зачем морочиться избавляясь от strlen(), я тоже не понимаю, но может и есть какой-то глубинный смысл в неиспользовании стандартных библиотечных функций... Само второе задание я бы так написал:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>
 
int main(void){
    char buf[256];
    
    while ( printf("Word: ") && scanf("%255s", buf) == 1 ){
        char * head = buf, * tail = buf + strlen(buf);
        int cnt[256] = { 0 };
        
        while ( head < tail ){
            if ( ++cnt[*head] > 1 ){
                break;
            }
            head += 2;
        }
        printf("%s\n", ( head < tail ) ? "Fail" : "Ok");
    }
    
    return 0;
}
Выход - Ctrl+c
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
27.09.2011, 19:53
easybudda, хороший вариант и префиксная форма инкремента очень кстати здесь. Быть может, увеличить лучше размер строки buf, чтобы с паскалевской строкой не сочеталась, тогда хорошо получилось P.S. Закроем глаза на break
0
27.09.2011, 20:17

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение
P.S. Закроем глаза на break
По моему скромному... оператор break в последнее время анафиме всё чаще предают просто потому, что на goto ворчать надоело... :) При правильном использовании операторы break и continue как-раз могут программу значительно логичнее сделать. До фанатизма доходить не сто'ит ни в применении какого-то отдельно взятого оператора языка С где надо и не надо, ни в тотальном от него избавлении...

2
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.09.2011, 01:48
Цитата Сообщение от easybudda
C
1
while ( printf("Word: ") &&
вот это неправильно
printf() может возвращать отрицательное значение
отрицательное значение - истина
https://www.cyberforum.ru/cpp-... ost1998186

массив и указатели
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
#include <stdio.h>
 
int checkneq_oddltrs(const char *s)
{    
    char arr[256] = { '\0' };
    
    for ( ; *s != '\0'; s += 2) {
        if (arr[(unsigned) *s]++ == 1)
            return 0;
        if (*(s + 1) == '\0')
            break;
    }
    return 1;
}
 
int main(void)
{
    printf("%d\n", checkneq_oddltrs(""));
    printf("%d\n", checkneq_oddltrs("a"));
    printf("%d\n", checkneq_oddltrs("ab"));
    printf("%d\n", checkneq_oddltrs("aba"));
    printf("%d\n", checkneq_oddltrs("abb"));
    printf("%d\n", checkneq_oddltrs("abba"));
    printf("%d\n", checkneq_oddltrs("abbaa"));
    printf("%d\n", checkneq_oddltrs("abbacaab"));
    printf("%d\n", checkneq_oddltrs("abbacazb"));
    return 0;
}
Code
1
2
3
4
5
6
7
8
9
10
11
[guest@localhost tests]$ ./t
1
1
1
0
1
1
0
0
1
[guest@localhost tests]$
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
28.09.2011, 01:59
accept, да уже много раз обсуждали. Ну может, да и ладно. В том случае, если printf() вдруг отрицательные значения возвращать начнёт, это какая-то беда с консолью. И тогда тут уж не до программирования, с системой бы разобраться. А вот scanf() действительно может вернуть не то, что программой ожидалось, и лучше бы этот случай обработать. По большому счёту printf() в условии только для краткости...
Но само собой учитываем, что всё-таки учебную програмку пишем, и потому только каждой мелочью не заморачиваемся. В настоящей программе лучше проверять всё, что проверяется - меньше сюрпризов будет...
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.09.2011, 02:08
Цитата Сообщение от easybudda
В том случае, если printf() вдруг отрицательные значения возвращать начнёт, это какая-то беда с консолью.
программа в таком случае должна завершиться, а не продолжаться, делая что-то дальше

Цитата Сообщение от easybudda
А вот scanf() действительно может вернуть не то
они обе могут вернуть не то
и надо останавливать программу в таком случае

Цитата Сообщение от easybudda
По большому счёту printf() в условии только для краткости...
для краткости можно и scanf() так же записать, но от этого программа правильной не станет
читай книги, в частности K&R, в которой это объясняется
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
28.09.2011, 02:14
а есть гарантия что printf выполнится раньше scanf ?
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.09.2011, 02:42
Цитата Сообщение от OstapBender
а есть гарантия что printf выполнится раньше scanf ?
логические операции гарантированно выполняются слева-направо
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
28.09.2011, 09:01
accept, ну пусть будет ещё одна неправильная программа на форуме... Кстати, жуткую тайну открою: по-хорошему в программах на С++ надо бы весь ввод/вывод и консольный, и, тем более, файловый в блоках try/catch размещать, а тут этого почти не встретишь... Но в принципе конечно правильнее проверять все возвращаемые функциями значения, так я и не спорю, да и говорил уже...
OstapBender, мало того! Есть гарантия, что scanf() вообще не будет вызвана, если printf() ноль вернёт.
0
28.09.2011, 10:55

Не по теме:

accept, предложите вашу реализацию алгоритма

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 11:26
Цитата Сообщение от tashka Посмотреть сообщение
ребята помогите пожалуйста немогу разобраться вот задачкинужно написать только на С а не на С# или С++) задача 1 Дана непустая строка S.Посчитать, сколько гласных букв в строке.
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
#include <stdio.h> //i/o
#include <ctype.h> //toupper
#include <conio.h> //getch
 
int isvowel(char ch)//Проверка на гласную
{
    int ret = 0;
    //Воспользуемся массивом гласных
    char vowels[] = "aeyuio";
    for(int i = 0; i < 6; i++)
    {
        if(vowels[i] == ch)//нижний регистр
        {
            ret = 1;
            break;
        }
        if(toupper(vowels[i]) == ch)//верхний регистр
        {
            ret = 1;
            break;
        }
    }
    return ret;
}
 
int main()
{
    char str[1025];//Думаю строки в 1024 символа вполне хватит
    char *pch;//Указатель на str
    long num;
    do
    {
        num = 0;//Обнуляем счётчик гласных
        printf("Enter string(less then 1025 chars)\r\n");
        scanf("%[^\n]%c",str,&pch);//В pch - '\n', чтобы не висел в буфере
        pch = &str[0];
        do
        {
            if(isvowel(*pch))
                num++;
        }
        while(*pch++);
        printf("String contain %d vowels\r\n",num);
        printf("Press Y to new input\r\n");
 
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Enter string(less then 1025 chars)
gljfdosopIPFOD
String contain 4 vowels
Press Y to new input
Enter string(less then 1025 chars)
HDOOFjjhgiiyada sdfkgj k dfkgigikkiasp
String contain 11 vowels
Press Y to new input
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
28.09.2011, 18:42
accept,
easybudda,
крута...

Не по теме:

блин, тока встал.

0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.09.2011, 02:24
Цитата Сообщение от Thinker
accept, предложите вашу реализацию алгоритма
Посчитать, сколько гласных букв в строке

Цитата Сообщение от easybudda
Кстати, жуткую тайну открою: по-хорошему в программах на С++ надо бы весь ввод/вывод и консольный, и, тем более, файловый в блоках try/catch размещать, а тут этого почти не встретишь... Но в принципе конечно правильнее проверять все возвращаемые функциями значения
одно дело, когда printf() отдельно стоит
а другое дело, когда от неё зависит, выполняется ли цикл
это совсем разные вещи
речь не о том, проверять или не проверять printf(), а о том, что цикл неправильно составлен
и в случае ошибки продолжает выполняться
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,980
29.09.2011, 09:56
Цитата Сообщение от accept Посмотреть сообщение
одно дело, когда printf() отдельно стоит
а другое дело, когда от неё зависит, выполняется ли цикл
это совсем разные вещи
речь не о том, проверять или не проверять printf(), а о том, что цикл неправильно составлен
и в случае ошибки продолжает выполняться
Вот по этому и ещё одна неправильная програмка. Другое дело - вероятность того, что printf вернёт отрицательное значение, мала на столько, что в учебной программе ей можно принебречь...
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.09.2011, 10:04
accept, ну что-то уже похоже на правду, не то первоначальный ваш алгоритм.
0
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.09.2011, 10:09
Цитата Сообщение от easybudda
мала на столько, что в учебной программе ей можно принебречь...
так можно и goto юзать вместо цикла, и завершать программу кнопкой reset, ведь программка учебная

Цитата Сообщение от Thinker
не то первоначальный ваш алгоритм
так он работает
на первом курсе не будут требовать скоростной
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.09.2011, 10:13
Цитата Сообщение от accept Посмотреть сообщение
так он работает

Не по теме:


accept, хорошая программа, просто вы часто пишите в резкой форме свои комментарии, что не всегда хочется положительно оценивать ваши произведения

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.09.2011, 10:13

Подсчитать сколько гласных букв в строке
Напишите пожалуйста функцию на с++ подсчёт гласных букв. и как потом вызвать эту функцию в main()?

Определить каких букв больше в строке: гласных или согласных и на сколько.
1)Ввести строку А с клавиатуры состоящую из заглавных русских букв. Определить каких букв больше: гласных или согласных и на сколько....

Посчитать сколько в текстовом файле гласных
Здравствуйте, помогите написать программу пожалуйста, вот сама задача программы: Посчитать сколько в текстовом файле гласных. ...

Посчитать сколько во введенной строке прописных гласных букв русского алфавита
Помогите пожалуйста Сценарий должен проверять: сколько во введенной строке прописных гласных букв русского алфавита и записывать их...

Посчитать количество гласных букв, согласных букв, цифр и знаков препинания в строке
С клавиатуры введена строка на кирилице. Посчитать количество гласных букв, согласных букв, цифр и знаков препинания в строке. Если...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru