Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/30: Рейтинг темы: голосов - 30, средняя оценка - 4.60
0 / 0 / 1
Регистрация: 25.04.2013
Сообщений: 67
1

isdigit()

30.04.2013, 01:16. Просмотров 6218. Ответов 2
Метки нет (Все метки)

Здравствуйте. Почему не работает isdigit() в этом примере? Пробовал разные варианты. Задача в том чтобы сделать проверку на то, введено число или нет, с использование массива double под это число.


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
int main()
{
    using namespace std;
    cout << "Enter digits"; 
    double * digit = new double[10];
    int i = 0;
    digit[0] = 1;
    while (i < 9)
    {
        char temp = digit[i];
        if(isdigit(temp)){
        cout << digit[i];
        cin >> digit[i];
        }
        i++;
    }
 
    for(i=0; i<10;i++){
    cout << digit[i] << endl;
    }
    cout << "theEnd";   
    system ("pause");
    return 0; 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2013, 01:16
Ответы с готовыми решениями:

isdigit() и кириллица
При этом коде если ввести символ из кириллицы выдаст ошибку. Как от неё избавиться? int main()...

isdigit() не понимаю
Здрасти всем! Не могу понять, почему isdigit() неверно себя ведет. Точнее абсолютно наоборот. ...

Цикл с проверкой isdigit
Друзья, подскажите - есть такой код void main() { setlocale(LC_ALL, &quot;rus&quot;); int i=0; for...

Массив char и isdigit()
// Задача, ввести строку, если попадется символ @ - закончить выполнение // программы. Если...

2
5472 / 4867 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
30.04.2013, 01:23 2
C++
1
char temp = digit[i];
Переменной char присваиваете double? И что должно получиться?
0
0 / 0 / 1
Регистрация: 25.04.2013
Сообщений: 67
30.04.2013, 03:19  [ТС] 3
Но функция isdigit() походу работает только с char. Но не обязательно ее использовать, может можно как-то реализовать через if else. Но я этого не знаю.

Добавлено через 1 час 12 минут
Сам спросил, сам и нашел решение.
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
int main()
{
    using namespace std;
    cout << "Enter digits" << endl;
    double * digit = new double[10];
    int i = 0;
    digit[0] = 1;
    while (i < 10 && cin >> digit[i])
    {
 
        cout <<endl;
        i++;
    }
    int schet = i;
    i = 0;
    double summa = 0;
    double max = 0;
    for(int j = 0; schet > j; j++, i++)
    {
            summa = summa + digit[i];
            if(max<digit[i]){
                max = 0;
                max = max + digit[i];
            }
    }
    cout << "среднее значение: " << summa / i << endl;
    cout << "самое большое значение: " << max;  
    system ("pause");
    return 0; 
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2013, 03:19

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

Проблема с isdigit() в условии
Подскажите кто знает! В 72 строке ,в условии где isdigit использую 2 раза через ||(или) если ввожу...

Функция для isdigit()
Как проверить флоат? И почему isdigit() не воспринимает русский, как сделать, чтобы воспринимал? ...

Ошибка функции isdigit
Почему не выводит &quot;ERROR&quot;, ведь b это буква. Или я где-то ошибся. Помогите пожалуйста. ...

Не работает isdigit как задумано
int main() { setlocale(LC_ALL,&quot;Russian&quot; ); cout&lt;&lt;&quot;Введите размерность массива=&quot;;...


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

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

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