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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mil_OK
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 41
#1

Scanf в цикле - C++

12.09.2013, 16:06. Просмотров 433. Ответов 9
Метки нет (Все метки)

C++ (Qt)
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
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
int main()
    {
 
        int n,i,k;
        double a,r;
 
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
        
        scanf("%d",&n);
        r=1;
        k=0;
        a=0;
        
        for(i=1;i<=n;i++)
            {
                scanf("%f",&a);
                a=(a>0)?a:-a;
                if((a-((int)a))>((((int)a) + 1) - a))
                    {
                    if(((((int)a) + 1) - a)<r)
                        {
                            r=((((int)a) + 1) - a);
                            k=i;
                        }
                    }
                else 
                    {
                    if((a-((int)a))<r)
                        {
                            r=(a-((int)a));
                            k=i;
                        }
                    }
            }
        printf("%d",k);
        return 0;
    }
Имею следущее, в файле записано сначало число n, а потом на след строке записано n чисел через пробел, каждое их надо поочереди обрабатывать. Но почему то printf не считывает переменную.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 16:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Scanf в цикле (C++):

Не работает scanf в цикле - C++
в коде int main() { int n,ip; printf(&quot;2-mernoe DPF\n&quot;); do { printf(&quot;\n 1-iz faila, 2-test, 0- Vixod\n&quot;); ...

Scanf - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; using namespace std; int maska(string a,string...

scanf() - C++
Всем привет! Вот маленький тестовый пример #include &lt;stdio.h&gt; int i; int main() { printf(&quot;Enter value:...

scanf в C - C++
можна прочитать несколько значений использав всего раз scanf например : scanf (&quot;%d %d&quot;,&amp;a,&amp;b); ? - правильно ли это...

scanf ? - C++
господа, подскажите пожалуйста, почему после этого в VC++ вылетает исключение о нарушении доступа (access violation) к каким-то (по ходу...

Разногласия с scanf - C++
Фрагмент кода: int x, y, xmod; printf(&quot;Введите X:&quot;); scanf(&quot;%d&quot;,&amp;x); Ругается на scanf(&quot;%d&quot;,&amp;x) и говорит: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 3
12.09.2013, 16:25 #2
Цитата Сообщение от Mil_OK Посмотреть сообщение
C++
1
scanf("%d",&n);
Попробуй
C++
1
scanf("%d %*[^\n]", &n);
0
Mil_OK
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 41
12.09.2013, 16:37  [ТС] #3
Цитата Сообщение от gray_fox Посмотреть сообщение
Попробуй
C++
1
scanf("%d %*[^\n]", &n);
Не сработало.
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.09.2013, 17:19 #4
C++
1
2
3
4
for(i=0;i<n;i++)
        {
            scanf("%lf",&a);
...
0
Mil_OK
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 41
12.09.2013, 17:35  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
for(i=0;i<n;i++)
        {
            scanf("%lf",&a);
...
Не идёт, попробуйте у себя запустить со значениями
5
8.91 18.59 -63.15 82.03 34.32
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.09.2013, 17:58 #6
Цитата Сообщение от Mil_OK Посмотреть сообщение
попробуйте у себя запустить со значениями
5
8.91 18.59 -63.15 82.03 34.32
Попробовал. В файл записалось 3.
0
Mil_OK
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 41
12.09.2013, 19:12  [ТС] #7
А у меня не хочет работать
0
alsav22
5420 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.09.2013, 19:20 #8
Цитата Сообщение от Mil_OK Посмотреть сообщение
А у меня не хочет работать
В программировании чудес не бывает. Среда какая? ОС?

Добавлено через 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
 
int main()
    {
 
        int n,i,k;
        double a,r;
 
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
        
        scanf("%d",&n);
        r=1;
        k=0;
        a=0;
        
        for(i=0;i<n;i++)
            {
                scanf("%lf",&a);
                
                a=(a>0)?a:-a;
                if((a-((int)a))>((((int)a) + 1) - a))
                    {
                    if(((((int)a) + 1) - a)<r)
                        {
                            r=((((int)a) + 1) - a);
                            k=i;
                        }
                    }
                else 
                    {
                    if((a-((int)a))<r)
                        {
                            r=(a-((int)a));
                            k=i;
                        }
                    }
            }
        printf("%d",k);
        return 0;
    }
Добавлено через 1 минуту
Файл input.txt, где находится?
1
Mil_OK
1 / 1 / 0
Регистрация: 16.12.2012
Сообщений: 41
12.09.2013, 19:35  [ТС] #9
alsav22, visual studio 10, win7.

Сейчас закрыл студию, потом открыл, создал новый проект, вставил ваш код, и всё заработало, чудеса
0
alsav22
12.09.2013, 19:39     Scanf в цикле
  #10

Не по теме:

Цитата Сообщение от Mil_OK Посмотреть сообщение
чудеса
В программировании чудес не бывает.

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 19:39
Привет! Вот еще темы с ответами:

Функция scanf() - C++
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #include &lt;stdio.h&gt; #include...

scanf for double - C++
Не подскажите как будет выглядеть функция scanf если нужно считать double Заранее спасибо

Scanf в Eclipse - C++
Всем привет) Подскажите пожалуйста как мне в Eclipse ввести какие-то данные в scanf() Заранее спасибо!

Работа со scanf() - C++
Добрый день! Столкнулась с проблемой при работе с функцией scanf(). Особенно не получается, если тип вводимых данных char. Не работают...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.09.2013, 19:39
Ответ Создать тему
Опции темы

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