Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
1

Не работает признак окончания ввода(признак-0)

03.05.2013, 14:05. Просмотров 1253. Ответов 8
Метки нет (Все метки)

Признак окончания ввода 0; подскажите люди добрые что не так?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include<stdio.h>
using namespace std;
int main(){
    setlocale(LC_ALL, "Russian");
    int const n=1000;
    int arr[n];
    int i=0,count=0,countr=0;
    cout<<"Введите последовательность чисел: ";
    while(arr[i]!=0){
        cin>>arr[i++];
    };
    for(i=0;i<n;i++){
      if(arr[i]<0) count++;
      if(arr[i]>0) countr++;
      };
    
    if(countr>count) cout<<"Знак меняется: "<<count<<" раз";
    else cout<<"Знак меняется: "<<countr<<" раз";
    system("pause>>void"); 
    return 0;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 14:05
Ответы с готовыми решениями:

Бинарные файлы. Признак окончания файла
Здравствуйте Возникла проблема при чтении с бинарного файла, программа не может найти конец файла...

Признак окончания потока для буферного итератора
Собственно надоело вводить ctrl+z для ввода признака окончания потока, засим возник вопрос а...

С клавиатуры вводятся последовательность целых чисел.0 - признак окончания последовательности
С клавиатуры вводятся последовательность целых чисел.0 - признак окончания...

С клавиатуры вводятся последовательность целых чисел 0 - признак окончания последовательности
определит ьверно ли утверждение количество нечетных чисел последовательности меньше количества...

8
276 / 275 / 83
Регистрация: 03.02.2013
Сообщений: 792
03.05.2013, 14:34 2
очевидно по замыслу программиста
эта штука
C++
1
cin>>arr[i++];
должна быть
C++
1
cin>>arr[++i];
Добавлено через 2 минуты
единственное не понятно тогда как писать 0-вый элемент в этом хитром плане
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
03.05.2013, 14:59 3
C++
1
2
3
 while(arr[i]!=0){
        cin>>arr[i++];
    };
замените на:

C++
1
2
3
4
do
{
cin >> arr[++i];
} while (arr[i - 1] != 0);
1
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
03.05.2013, 15:01  [ТС] 4
Цитата Сообщение от abit Посмотреть сообщение
очевидно по замыслу программиста
эта штука
C++
1
cin>>arr[i++];
должна быть
C++
1
cin>>arr[++i];
Добавлено через 2 минуты
единственное не понятно тогда как писать 0-вый элемент в этом хитром плане
спасибо, а вот не подскажешь почему у меня счетчик который при
C++
1
if(arr[i]>0) {count++;};
выводит трехзначное число? Ну то есть считает не ++. А --1000. то есть если два числа то он выведет 998
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
03.05.2013, 15:07 5
okman, см. выше. Все дело в том, что первый элемент массива пропускается
0
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
03.05.2013, 15:24  [ТС] 6
Цитата Сообщение от nexen Посмотреть сообщение
C++
1
2
3
 while(arr[i]!=0){
        cin>>arr[i++];
    };
замените на:

C++
1
2
3
4
do
{
cin >> arr[++i];
} while (arr[i - 1] != 0);
вот так код вообще не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(){
    setlocale(LC_ALL, "Russian");
    int const n=1000;
    int arr[n];
    int i=0,count=0,countr=0;
    cout<<"Введите последовательность чисел: ";
    do{
    cin >> arr[++i];
    } while (arr[i-1] != 0);
    for(i=0;i<n;i++){
        if(arr[i]>0) {count++;};
        if(arr[i]<0) {countr++;}
      };
    cout<<"Положительных: "<<countr;
    cout << endl <<"Отрицательных: "<<count;
    
    system("pause>>void"); 
    return 0;
}
0
276 / 275 / 83
Регистрация: 03.02.2013
Сообщений: 792
03.05.2013, 15:28 7
okman,
вы так быстро меняете логику программы, что я даже не успеваю уследить

может быть так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(){
    setlocale(LC_ALL, "Russian");
    int const n=1000;
    int arr[n];
    int i=0,ns,count=0,countr=0;
    cout<<"Введите последовательность чисел: ";
    do{
    cin >> arr[i++];
    } while (arr[i-1] != 0);
    ns=i;
    for(i=0;i<ns;i++){
        if(arr[i]>0) {count++;};
        if(arr[i]<0) {countr++;}
      };
    cout<<"Положительных: "<<countr;
    cout << endl <<"Отрицательных: "<<count;
    
    system("pause>>void"); 
    return 0;
}
2
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
03.05.2013, 15:29 8
Цитата Сообщение от okman Посмотреть сообщение
вот так код вообще не работает
C++
1
    cin >> arr[++i];
Перепутал я. i++ поставьте
1
15 / 21 / 8
Регистрация: 05.04.2013
Сообщений: 204
03.05.2013, 15:31  [ТС] 9
Цитата Сообщение от abit Посмотреть сообщение
okman,
вы так быстро меняете логику программы, что я даже не успеваю уследить

может быть так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main(){
    setlocale(LC_ALL, "Russian");
    int const n=1000;
    int arr[n];
    int i=0,ns,count=0,countr=0;
    cout<<"Введите последовательность чисел: ";
    do{
    cin >> arr[i++];
    } while (arr[i-1] != 0);
    ns=i;
    for(i=0;i<ns;i++){
        if(arr[i]>0) {count++;};
        if(arr[i]<0) {countr++;}
      };
    cout<<"Положительных: "<<countr;
    cout << endl <<"Отрицательных: "<<count;
    
    system("pause>>void"); 
    return 0;
}
Да, точно, спасибо большое мужики. Все работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2013, 15:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

признак конца ввода
Здравствуйте. Учу С++ по книге Дейтела так вот там пример программы #include &lt;iostream&gt;...

Признак конц ввода (с клавиатуры)
Здравствуйте, нужна помощь. начал решать одну задачу, а там: &quot;Всего последовательность состоит не...

Задача, на признак конца ввода
Помогите пожалуйста

С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений.,
нужно написать программку срочно(С++) ...О_опомогите пожалуйста) ВОТ УСЛОВИЕ: С клавиатуры ...


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

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

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