Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2021, 23:17   #1
Xterylis
Пользователь
 
Регистрация: 10.12.2020
Сообщений: 12
По умолчанию Неправильно работает код

Доброго времени суток, у меня есть код, который должен считать количество гласных букв первой строки, которые встречаются во второй строке
Но он почему-то не работает, и я не могу найти ошибку, даже когда нет общих гласных букв, то выводит 1 а не 0
Вот сам код:
Код:
#include <stdio.h>
#include <string.h>
 
int main(int argc, const char** argv){
    char s1[100];
    char s2[100];
    char vowels[5] = {'a', 'e', 'i', 'o', 'u'};
 
    int counter = 0;
 
    printf("Enter 1st stirng: ");
    fgets(s1, 100, stdin);
 
    printf("Enter 2nd stirng: ");
    fgets(s2, 100, stdin);
 
    for(int i = 0; i < strlen(s1); i++){
        for(int j = 0; j < strlen(s2); j++){
            for(int k = 0; k < strlen(vowels); k++){
                if((s1[i] == vowels[k]) && (s2[j] == vowels[k])){
                    if(s1[i] == s2[j]){
                        counter++;
                        if((s1[i] == s1[i+1]) || (s2[j] == s2[j+1]))
                            counter--;
                    }
                }
            }
        }
    }
 
    printf("Counter = %d\n", counter);
 
    return 0;
}
Xterylis вне форума Ответить с цитированием
Старый 11.01.2021, 00:03   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

А так:
Код:
    for (int k = 0; k < strlen(vowels); k++) {
        int fl = 1;
        for (int i = 0; i < strlen(s2); i++) {
            if (s2[i] == vowels[k]) {
                fl = 0;
                break;
            }
        }
        if (fl) {
            continue;
        }
        for (int i = 0; i < strlen(s1); i++) {
            if (s1[i] == vowels[k]) {
                counter++;
            }
        }
    }
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.01.2021, 00:47   #3
Xterylis
Пользователь
 
Регистрация: 10.12.2020
Сообщений: 12
По умолчанию

Большое спасибо, все работает
Xterylis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильно работает условие Afraid1 C# (си шарп) 1 06.10.2019 20:55
Программа неправильно работает HaKeRR Помощь студентам 1 05.12.2014 23:51
Неправильно работает код Си++ Praud Помощь студентам 5 01.12.2012 19:27
Неправильно работает вродебы правильный код ImmortalAlexSan Помощь студентам 0 25.04.2011 07:29
Запрос неправильно работает... yulia БД в Delphi 0 27.05.2007 20:41