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

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

Войти
Регистрация
Восстановить пароль
 
Найк
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 32
#1

Операции с числом - C++

04.10.2011, 21:23. Просмотров 1018. Ответов 9
Метки нет (Все метки)

Пожалуйсто помогите решить задачу:

Дано целое число. Проверить: является ли данное число положительным пятизначным числом кратным десяти. Результат выводится на экран в виде значения "1" - если истина и значения "0" - если ложь.

Вот что сам написал:

C++
1
2
3
4
5
6
7
8
9
10
int main(int argc, char *argv[])
{
     int x,y;
    printf("Vvedite  znachenie X: ")
        scanf("%d", &x);
    if (x>0) &  (x<100000)  y=1;
    else y=0;
    printf("1 (true), 0 (false): d\n", &y);
    return 0;
}
Остальное не понимаю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2011, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Операции с числом (C++):

Проверка является ли строка числом полностью числом или нет? - C++
как проверить является ли строка типа &quot;23уар&quot; полностью числом или нет?

Определить разность между наибольшим числом и наименьшим числом последовательности - C++
вот задание и сама программа,в ней ошибка ,но незнаю какая. Помогите пожалуйста! Даны вещественные числа A1, A2, A3, ... . Признак...

Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20 (ООП) - C++
1. Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20. Найти произведение ненулевых...

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,&gt;, &lt;,&gt; =, &lt;= И операции потокового ввода-вывода. ...

Заменить операции ifstream на операции fprintf - C++
Собственно как и написано в заголовке заменить операции ifstream на fprintf со всеми вытекающими(типо getline) необходимо мне. Помогите...

Битовые операции и операции смещения языка С - C++
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает верно(переводит обычные числа в 16-ти ричные),а...

9
-=ЮрА=-
Заблокирован
Автор FAQ
04.10.2011, 22:02 #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
#include <stdio.h>
#include <conio.h>
 
unsigned long nDigits(unsigned long val)//Подсчёт числа разрядов целого
{
    unsigned long ret = 1;//Один раряд в любом числе найдется
    if(1 < val)
        ret += nDigits((val /= 10));//Рекурсия - очень удобно для решения подобных задач
    return ret;
}
 
int main()
{
    long val,n;
    do
    {
        n = 0;
        printf("Enter number : ");scanf("%u",&val);
        if(val < 0)
            printf("Input value negative!\r\n");
        else
        {
            if((n = nDigits(val)) != 5)//Проверим содержит ли число 5 разрядов
                printf("Input value contain not from 5 digits\r\n");
            else
            {
                if(val % 10 != 0)//Проверяем является ли число кратным 10-ти
                    printf("Input value not equal 10\r\n");
                else
                    printf("Input value contains from 5 digits and equal 10!\r\n");
            }
        }
        printf("Press \'y\' for new input\r\n");
    }
    while(getch() == 'y');
    return 0;
}
1
Миниатюры
Операции с числом  
Найк
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 32
04.10.2011, 22:16  [ТС] #3
спасибо) тут многое что даже не проходили но буду пробовать разобраться)
0
KeyGen
384 / 291 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
05.10.2011, 02:24 #4
Я вижу это так:
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
#include <iostream>
using namespace std;
    
int main()
{
    setlocale(LC_ALL, "rus");
    
    int k,l;
    cout << "Ââåäèòå ÷èñëî\n";
    cin>> k;
    if(k<100000&&k>9999){
    l=k%10;
    if(l==0)
    cout << "1";
    else
    cout << "0";
    }
    else
    cout << "0";
    
    
    cout << "\n\n\n";
    system("PAUSE");
    return 0;
}
1
alkagolik
Заблокирован
05.10.2011, 04:30 #5
код на выбор ))
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    unsigned char  x = 0;
    int y;
 
    printf("\nчисло y = ");
    scanf("%d", &y);
 
    if (y > 0)
        if ((y > 9999) && (y < 100000))
            if ( ! (y % 10) )   x = 1;
 
    printf("%d \n\n", x);
    return 0;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    unsigned char  x = 0;
    int y;
 
    printf("\nчисло y = ");
    scanf("%d", &y);
 
    x = (y > 0);
    if (x) x = ((y > 9999) && (y < 100000)) ? 1 : 0;
    if (x) x = (!(y % 10)) ? 1 : 0;
 
    printf("%d \n\n", x);
    return 0;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    unsigned char x;
    int y;
 
    printf("\nчисло х = ");
    scanf("%d", &y);
 
    if (y < 0) x = 0;    //проверка на положительность
    else if ( (y > 9999) && (y < 100000) ){     //проверка на разрядность
        if (! (y % 10) ) x = 1;      //проверка не делимость на 10
        else x = 0;
    }
    else x = 0;
 
    printf("%d \n\n", x);
    return 0;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    unsigned char  x = 0;
    int y;
 
    printf("\nчисло y = ");
    scanf("%d", &y);
 
    x = (y > 0) ? (((y > 9999) && (y < 100000)) ? ((!(y % 10)) ? 1 : 0): 0) : 0;
 
    printf("%d \n\n", x);
    return 0;
}
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <stdlib.h>
#define func(a) ( (a > 0) ? (((a > 9999) && (a < 100000)) ? ((!(a % 10)) ? 1 : 0 ) : 0 ) : 0 )
int main(){
    int y;
    printf("\nчисло y = ");
    scanf("%d", &y);
    printf("%d \n\n", func(y));
    return 0;
}
1
odip
Эксперт С++
7157 / 3219 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
05.10.2011, 11:45 #6
x = (y > 0) ? (((y > 9999) && (y < 100000)) ? ((!(y % 10)) ? 1 : 0): 0) : 0
Во всех примерах много лишней фигни
C
1
x= (10000<=y && y<=99999) && (y%10==0);
Если мы и так проверяем что число от 10000 до 99999, то очевидно что оно положительное
и нет смысла еще раз проверяет на это

Кроме этого логическая операция y%10==0 и так вернет 1 или 0

Добавлено через 2 минуты
if (y < 0) x = 0; //проверка на положительность
Вообще-то должно быть так
if ( y<=0 ) x= 0;
2
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
05.10.2011, 17:04 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cmath>
 
using namespace std;
 
int check(int val)
{
   return val > 0 && int(log10(val) + 1) == 5;
}
 
int main()
{
   int n = 12340;
   cout << check(n) <<endl;
}
1
alkagolik
Заблокирован
05.10.2011, 17:44 #8
Цитата Сообщение от odip Посмотреть сообщение
Во всех примерах много лишней фигни
я не волшебник, я только учусь
1
Найк
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 32
05.10.2011, 18:58  [ТС] #9
спасибо всем , а то с первым решением не разобрался, теперь понятно))
0
-=ЮрА=-
Заблокирован
Автор FAQ
05.10.2011, 19:29 #10
Цитата Сообщение от Найк Посмотреть сообщение
а то с первым решением не разобрался,
- я понял рекурсия наверное сбила, посмотри эту функциию (в ней убрал рекурсию - функционал тотже)
C++
1
2
3
4
5
6
7
8
9
10
unsigned long nDigits(unsigned long val)//Подсчёт числа разрядов целого
{
    unsigned long ret = 1;//Один раряд в любом числе найдется
    while(1 < val)
    {
        ret ++; 
        val /= 10;
    }
    return ret;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2011, 19:29
Привет! Вот еще темы с ответами:

Записать логические выражения, используя условные операторы, операции отношений и логические операции - C++
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка ...

В тексте удалить каждое слово с четным числом символов, продублировать каждое слово с нечетным числом символов - C++
Помогите пожалуйста!!!!!!!Задан текст, состоящий из слов, записанных через запятые и,или пробел, и заканчивающийся точкой. Длина текста не...

работа с числом - C++
дано трехзначное число. в нем зачеркнули первую слева цифру и поставили ее справа. Вывести полученное число.

Работа с числом float - C++
Привет всем... У меня есть число 9.34671 в переменной t типа float; float t = 9.34671; как мне получить в переменную long int t1 -...


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

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

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