Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
sky123
2 / 2 / 0
Регистрация: 03.11.2014
Сообщений: 121
#1

Не понимаю как работает scanf - C (СИ)

04.09.2016, 22:15. Просмотров 501. Ответов 4
Метки нет (Все метки)

Здравствуйте, вот код программы. При работе программы второй scanf пропускается. Почему так происходит? Комментарии в коде. Заранее спасибо.
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
#include <stdio.h>
#define length 3
int poisk (int a, int array[]);
int main(void)
{
    int array[length];
    int c = 0;
    int x = 0;
    printf("Vvedite chislo dlya sravneniya");
    scanf_s("Vvedite chislo: %d", &x); // этот скан срабатывает, но переменная не изменяется.
    for (int i = 0; i < length; i++)
    {
        scanf_s("%d", &c); // при первом проходе цикла этот сканф просто пропускается.
        array[i] = c;         // здесь присваивается значение, которое было получено при первом проходе.
    }
    x = poisk (x, array);
 
    printf("Samoe malenkoe chislo: %d", x);
    scanf_s("%d", &c);
}
 
int poisk(int a, int array[]){
    int y = 0;
    int u = 0;
    a = 100000000000000000;
    for (int i = 0; i < length; i++)
    {
        if (array[i] < 0){
            u = array[i];
            while (u < 0)
            {
                u++;
                y++;
            }
            u += y;
            array[i] = u;
        }
        if (array[i] < a){
            a = array[i];
        }
    }
 
    return a;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2016, 22:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не понимаю как работает scanf (C (СИ)):

Не работает scanf - C (СИ)
Здравствуйте! Необходимо описать массив структур и реализовать 4 функции: Добавление записи, Удаление записи, Вывод всех записей и...

Не работает scanf - C (СИ)
#include &lt;stdio.h&gt; int main() { char c; int d; scanf_s(&quot;%c&quot;,&amp;c); printf(&quot;%c&quot;, c); ...

Функция scanf не работает - C (СИ)
Возникает проблема, что функция scanf не работает. Скрин: Можно как-нить решить? И не будут ли еще подобные проблемы встречаться? ...

Scanf не работает дважды - C (СИ)
Вот и я решил завести аккаунт на этом форуме, т.к. часто выручает в случае каких-либо передряг и казусов в работе с С. Но не в этом суть :)...

Scanf работает, но значение не меняется - C (СИ)
Добрый день! Не могу понять эту проблему, прям загадка какая-то. Мы задаем переменной значение 75. #include &lt;stdio.h&gt; int main(void)...

Scanf работает через раз - C (СИ)
Доброго времени суток При компиляции простой программы: #include &lt;stdio.h&gt; #include &lt;locale&gt; #include &lt;stdlib.h&gt; int main()...

4
MansMI
1375 / 1154 / 340
Регистрация: 08.01.2012
Сообщений: 4,509
04.09.2016, 22:51 #2
fflush(stdin); перед scanf может помочь
0
gazlan
3139 / 1915 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
05.09.2016, 00:37 #3
Scanf не работает дважды
Количество уникальных символов в строке
0
Тупенький
19 / 19 / 1
Регистрация: 09.11.2015
Сообщений: 104
05.09.2016, 07:39 #4
Все работает, у Вас:
25 переполнение int
10 это Вы свою, не стандартную, функцию написали?
в main не хватает return 0;
Попробовал на Ubuntu поиск меньшего работает. Последний scanf (ст-ка 19) непонятен.
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
50
51
52
[CODE]
 
#include <stdio.h>
#define length 3
int poisk (int a, int array[]);
int main(void)
{
    int array[length];
    int c = 0;
    int x = 0;
    int i;
    printf("Vvedite chislo dlya sravneniya\n");
    scanf("Vvedite chislo: %d", &x); // этот скан срабатывает, но переменная не изменяется.
    for (i = 0; i < length; i++)
    {
        scanf("%d", &c); // при первом проходе цикла этот сканф просто пропускается.
        array[i] = c;         // здесь присваивается значение, которое было получено при первом проходе.
    }
    x = poisk (x, array);
 
    printf("Samoe malenkoe chislo: %d\n", x);
    scanf("%d", &c); // Зачем? 
    return 0;
}
 
int poisk(int a, int array[]){
    int y = 0;
    int u = 0;
    int i;
    a = 1000000000;
    for (i = 0; i < length; i++)
    {
        if (array[i] < 0){
            u = array[i];
            while (u < 0)
            {
                u++;
                y++;
            }
            u += y;
            array[i] = u;
        }
        if (array[i] < a){
            a = array[i];
        }
    }
 
    return a;
}
 
 
[/CODE]
0
Fulcrum_013
Заблокирован
05.09.2016, 08:19 #5
Цитата Сообщение от Тупенький Посмотреть сообщение
scanf("Vvedite chislo: %d", &x);
вместо этого надо
C++
1
scanf("%d", &x);
строка которая в scanf указывается это маска ввода. т.е. для того чтобы в вашем варианте ввелось значение числа надо напечатать при вводе
Vvedite chislo: 10
тогда в x попадет 10
0
05.09.2016, 08:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2016, 08:19
Привет! Вот еще темы с ответами:

Scanf работает через раз - C (СИ)
Подскажите, почему в 42 строчке scanf пропускается? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; /* для rand(), srand() */ #include...

Не работает scanf в одной из строк - C (СИ)
#include &lt;stdio.h&gt; int main() { int a, b, c, loop; char symbol; char change; while(1) { loop=0;

Не работает scanf и getchar после циклов - C (СИ)
Добрый день, проблема возникла следующая - функции гетчар и сканэф не вызываются после циклов for. Если поставить эти функции до циклов,...

При вызове в обоих случаях работает только первый scanf () - C (СИ)
Пример: #include &lt;stdio.h&gt; int main() { char a = '\0'; char b = '\0'; printf(&quot;Enter a: &quot;); scanf(&quot;%c&quot;,...


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

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

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