Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.

Venia

Сегодняшнее домашнее задание основано именно на этом принципе, однако, вам придется использовать еще и циклы.1. Пользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну переменную.Примечание: Например, пользователь ввел число 12345. На экране должно появиться сообщение о том, что в числе 5 цифр. 2. Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.Примечание: Например, пользователь ввел число 12345. На экране должно появиться число наоборот - 54321. 3. Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.Примечание: Например, пользователь ввел число 12345. На экране должно появиться сообщение о том, что сумма цифр числа 15.
14 ответов

Venia

Ты в Шаге учишься? У меня такое же задание. Если найдеш ответ кинь его сюда!Добавлено через 2 часа 6 минут 43 секундыПользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну переменную.
void main()
{
    int digit,i=0;
    cout<<"Vvedite chislo:\n";
    cin>>digit;
    for(;digit>0;i++){
        digit/=10;
    }
    cout<<" V dannom chisle "<<i<<" cifr\n\n";
cin.get();
cin.get();  
}
Пользователь вводит с клавиатуры число, необходимо перевернуть его (число) и вывести на экран.
void main()
{
    int digit,sum;
    cout<<"Vvedite chislo:\n";
    cin>>digit;
    cout<<"Vashe chislo naoborot = ";
    while(digit>0){
        sum=digit%10;
        digit/=10;
        cout<<sum;
    }
cin.get();
cin.get();  
}
Пользователь вводит с клавиатуры число, необходимо показать на экран сумму его цифр.
void main()
{
    int digit,sum,i=0;
    cout<<"Vvedite chislo:\n";
    cin>>digit;
    while(digit>0){
        sum=digit%10;
        digit/=10;
        i+=sum;
    }
    cout<<"Summa cifr dannogo chisla = "<<i;
 
cin.get();
cin.get();  
}


Venia

//считаеи кол-во цифр в числе
#include<iostream>
using namespace std;
void main()
{
 
unsigned int a;
 
int s=0,b=1;
 cout<<"\n\n\tENTER DIGIT ";
 cin>>a;
if((a<400000000)&&(a>0))
    { 
    
        for (int i=1;i<=10;i++)
        {
                if(a/b)
                {
                    s++;
                }
         b=b*10;
 
        }  
 cout<<"\n\n\tNumber of digits in the number of "<<s<<"\n\n";
    }
else
 
         cout<<"\n\n\t\tdo not write drivel"<<"\n\n";
}
Добавлено через 47 секунд
//переворачиваем число
#include<iostream>
using namespace std;
void main()
{
    
    int c,m=0;
    int b=1000000000,e=1,summa=0;
    cout<<"\n\n\t Enter digit ";
    cin>>c;
    if((c<400000000)&&(c>0))
    {
        for(int x=10;x>0;x--)
       {
            m=c/b;
            c-=b*m;
            b/=10;
            summa=summa+m*e;
            if(summa!=0)
            {
                
                e=e*10;
            }
        }
    cout<<"\n\n\tperewertysh= "<<summa<<"\n\n\n";
    }
    else 
        cout<<"\n\n\tYou have entered incorrect numbers\n\n";
}
Добавлено через 55 секунд
//находим сумму цифр числа
#include<iostream>
using namespace std;
void main()
{
    int a,b=100000000;
    int summa=0,n=0;
    cout<<"\n\n\t\tenter digit ";
    cin>>a;
    if((a<400000000)&&(a>0))
    {
    for(int i=1;i<10;i++)
    {
        n=a/b;
        a=a-n*b;
        summa=summa+n;
        b=b/10;
        //cout<<"\n a="<<a<<" b="<<b<<" n="<<n<<" summa="<<summa; 
    }
 
    cout<<" \n\n\t\tsumma="<<summa<<"\n\n\n";
    }
    else
        cout<<"\n\n\t\tYou have entered incorrect numbers\n\n";
 
}


Venia

[QUOTE=DenisDpUa;91176]Ты в Шаге учишься? У меня такое же задание. Если найдеш ответ кинь его сюда!Добавлено через 2 часа 6 минут 43 секундыПользователь вводит с клавиатуры число - программа должна показать сколько в данном числе цифр. Число вводится целиком в одну переменную.
void main()
{
    int digit,i=0;
    cout<<"Vvedite chislo:\n";
    cin>>digit;
    for(;digit>0;i++){
        digit/=10;
    }
    cout<<" V dannom chisle "<<i<<" cifr\n\n";
cin.get();
cin.get();  
}
Если пользователь введет 000444 ваше решение будет неправильным)


Venia

А резве strlen уже не в моде?


Venia

Для данного задания strlen еще не изучен


Venia

СПС БОЛЬШОЕ. Все нормально работает


Venia

три в одном
#include <stdio.h>
 
int main(void){
    int num, rests, rnum, cnt, sum;
    
    rnum = cnt = sum = 0;
    printf("Число: ");
    if ( scanf("%d", &num) != 1 )
        return 1;
    
    do {
        rests = num % 10;
        rnum = rnum * 10 + rests;
        sum += rests;
        ++cnt;
    } while ( num /= 10 );
    
    printf("Перевёрнутое число: %d\nКоличество цифр: %d\nСумма цифр: %d\n", rnum, cnt, sum);
    
    return 0;
}
Если пользователь введет 000444
... то не нужно его больше за компьютер пускать!


Venia

while(digit>0){sum=digit%10; digit/=10; cout<<sum;}
кто может рассказать что здесь происходит, а то моего понимания совсем нехватает
while(digit>0){sum=digit%10; digit/=10; cout<<sum;}
кто может рассказать что здесь происходит, а то моего понимания совсем не хватает


Venia

в sum берем остаток от деления на 10(по сути цифру) а само число целочисленное делим на 10, по сути убираем выведенную цифру


Venia

в sum берем остаток от деления на 10(по сути цифру) а само число целочисленное делим на 10, по сути убираем выведенную цифру
а как в sum попадает остаток, я всегда думал что % дает целочисленное деление к тому же sum у нас int и не видит дробной части


Venia

% даёт остаток от деления, а / в приложении к целым типам даёт целочисленное деление


Venia

skynet120,
Полная запись    | Аналогичная сокращенная запись
  x = x + 1;     |      x += 1;
  x = x - 1;     |      x -= 1;
  x = x * 1;     |      x *= 1;
  x = x / 1;     |      x /= 1;
  x = x % 1;     |      x %= 1;


Venia

% даёт остаток от деления, а / в приложении к целым типам даёт целочисленное деление
спасибо понял, что то я попутал


Venia

#include <iostream>
 
using::std::cin;
using::std::cout;
using::std::endl;
 
void main(){
    int number, temp;
    char tsk;
 
    do{
        cout << "\nenter the task n0 you want to perform:\n  1 digits  2 reverse  3 sum  4 quit ";
        cin >> tsk;
 
        switch (tsk)
        {
        case '1':
            number = 123456, temp = 0;
 
            for (; number > 0; temp++)
                number /= 10;
            cout << temp << endl;
            break;
 
        case '2':
            number = 123456, temp = 0;
 
            while (number > 0)
            {
                temp = temp * 10 + number % 10;
                number /= 10;
            }
            cout << temp << endl;
            break;
 
        case '3':
            number = 123456, temp = 0;
 
            while (number > 0)
            {
                temp += number % 10;
                number /= 10;
            }
            cout << temp << endl;
            break;
 
        case '4':
            cout << "the program has exited with code 0\n\n";
            break;
 
        default:
            cout << "error 400  bad request\n";
        }
    } while (tsk != '4');
 
}