Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.10.2017
Сообщений: 11
1

Почему не работает printf?

01.01.2018, 23:51. Показов 688. Ответов 3
Метки нет (Все метки)

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
int main(){
    setlocale(LC_ALL,"RUS");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char sym[50];
    int n=0;
    printf("введите символ\n");
    scanf("%c",&sym);
    if(sym[n]>48&&sym[n]<57)
        {
            printf("digit\n");
            n++;
        }
        else
            if(sym[n]>65&&sym[n]<90||sym[n]>97&&sym[n]<122)
                {
                    printf("lat");                                              
                }
            else
                if(sym[n]>192&&sym[n]<256)        
                    {
                        printf("rus");              //почему printf не выводит rus       
                    }
    fflush(stdin);
    getchar();
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.01.2018, 23:51
Ответы с готовыми решениями:

Почему printf добавляет символы в выводе?
Программа меняет соседние буквы в словах. Ниже код, не знаю где ошибка. Вывожу слова с помощью...

Почему нежелательно использовать printf с одним аргументом?
Изучаю Си по книге. В главе &quot;Безопасное программирование на С&quot; написано, что нежелательно...

Не работает printf()
Почему консоль ничего не выводит, в чём проблема? Microsoft Visual C++ Express 2010 #include...

Не корректно работает printf
Добрый день, у меня в этой программе почему то printf выводит нули. Хотя переменные правильно...

3
226 / 109 / 34
Регистрация: 25.11.2017
Сообщений: 380
02.01.2018, 01:19 2
1. scanf("%c",&sym); заменить на scanf ("%c", sym);
2. sym[n]>65&&sym[n]<90||sym[n]>97&&sym[n]<122 - расставить нормально скобки, иначе порядок операций && || && совершенно не тот как вы хотите.
1
3350 / 1928 / 368
Регистрация: 09.09.2017
Сообщений: 7,812
02.01.2018, 01:21 3
Зачем вводите в заблуждение? Сами же понимаете что printf ни при чем.
Выведите значение sym[0] сразу после ввода чтобы посмотреть на каком этапе ошибка.
1
226 / 109 / 34
Регистрация: 25.11.2017
Сообщений: 380
02.01.2018, 01:26 4
На самом деле, для алгоритмов определения "что это там на входе" необходимо описывать все варианты выбора, а не так кусочно как в коде выше. То есть для всех неопределенных вариантов должен быть тоже вывод, например "unknown".
Далее вы поймете, то проваливаетесь в неверную ветвь изза того что у вас неверный ввод и под большим вопросом правильность выполнения сравнений без скобок.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2018, 01:26

Не работает printf после циклов
Элементарная программа, перепечатанная из учебника Кернигана (только начал знакомство с Си). Первый...

Как вообще работает это printf() ?
Есть код: #include &lt;stdio.h&gt; int main(){ float f = 354.235; printf(&quot;%10f\n&quot;, f);...

Таинственный (для меня) printf. Почему печатает "не то"
Всем привет! Есть отлично работающая программа, но я её хочу подправить, соответственно мне надо...

Как работает Printf (как вывести результат в консоль)
Извините за такой вопрос, но я новичёк в c++ и проблема поисковыми системами не решилась. Задача...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.