Определить число, полученное выписыванием в обратном порядке цифр - C (СИ) (71574)

Узнай цену своей работы

Формулировка задачи:

2. Написать программу, которая для заданного натурального числа: • определяет число, полученное выписыванием в обратном порядке цифр, • определяет сумму и количество цифр, • определяет максимальную и минимальную из цифр, • формирует новое число, состоящее только из четных цифр заданного числа и новое число, состоящее только из нечетных. Вот мой код:
#include<stdio.h>
#include<conio.h>
#include<math.h>
 
main ()
{
    int a,b,c,x,max,min,d,e,f;
    
    printf("Vvod celogo 3-x znachnogo chisla: ");
    scanf("%d",&x);
        c=x%10;
        x=x/10;
        b=x%10;
        x=x/10;
        a=x%10;
        x=c*100+b*10+a;
        printf("\nZadom napered: %d\nSumma cifr: %d",x,c+b+a);
        max=c;
        if (max<b)
         max=b;
        if (max<a)
         max=a;
        printf("\nMax chislo: %d",max);
        min=c;
        if (min>b)
         min=b;
        if (min>a)
         min=a;
        printf("\nMin chislo: %d",min);
        d=c%2;
        if (d==1)
         {
            c=0;
         }
            else
            c=c;
        e=b%2;
        if (e==1)
         {
            b=0;
         }
            else
            b=b;
        
        f=a%2;
        if (f==1)
        {
            a=0;
        }
            else
            a=a;
        printf("\nChetnoe: %d%d%d",c,b,a);
        
        d=c%2;
        if (d==0)
         {
            c=0;
         }
            else
            c=c;
        e=b%2;
        if (e==0)
         {
            b=0;
         }
            else
            b=b;
        
        f=a%2;
        if (f==0)
        {
            a=0;
        }
            else
            a=a;
        printf("\nNechetnoe: %d%d%d",c,b,a);
 
        printf("\nKolichestvo cifr: 3");

    _getch();
    return 0;
}
Не получается сделать: 1.Счетчик цифр. 2.Вывод четных\нечетных. Просьба подсказать эффективное решение.

Решение задачи: «Определить число, полученное выписыванием в обратном порядке цифр»

textual
Листинг программы
#include <stdio.h>
int power(int x, int n)
{
    int i, z = 1;
    for(i = 0; i < n; ++i)
        z = x * z;
    return z;
}
int main()
{
    int  x, a, k, b, y, max = 0, min = 9, sum = 0, n = 0;
    printf("Input number:\n");
    scanf("%d", &a);
    b = a;
   printf("The number of Vice versa is:\n");
    while(b > 0){
        x = b % 10;
        b = b / 10;
        printf("%d", x);
        sum = sum + x;
        if(x < min)
            min = x;
        if(x > max)
            max = x;
        ++n;
    }
    printf("\n Min is:\n%d", min);
    printf("\n Max is:\n%d", max);
    printf("\n Amount is:\n%d", sum);
    printf("\n Numbers quantity is:\n%d", n);
    printf("\n Even numbers is:\n");
    b = a;
    k = n - 1;
    while(b > 0){
        y = b / power(10, k);
        b = b - y * power(10, k);
        --k;
        if(y % 2 == 0)
            printf("%d ", y);
    }
    b = a;
    k = n - 1;
    printf("\nOdd numbers:\n");
    while(b > 0){
        y = b / power(10, k);
        b = b - y * power(10, k);
        --k;
        if(y % 2 != 0)
            printf("%d ", y);
    }
 
    return 0;
}

Объяснение кода листинга программы

  1. В функции main() определены переменные x, a, k, b, y, max, min, sum, n.
  2. С помощью функции scanf() в переменную a считывается число, которое вводится пользователем.
  3. Переменная b инициализируется значением переменной a.
  4. С помощью цикла while в обратном порядке выписываются цифры числа, которые считываются в переменную x.
  5. К переменной b применяется операция деления нацело, чтобы избавиться от последней цифры числа.
  6. Выполняется операция умножения переменной x на число, полученное в результате вычисления power(10, n), и результат прибавляется к переменной sum, если число не является минимальным.
  7. Если число меньше минимального числа, то оно становится новым минимальным числом.
  8. Если число больше максимального числа, то оно становится новым максимальным числом.
  9. Увеличивается счетчик количества чисел n.
  10. Выводится минимальное число.
  11. Выводится максимальное число.
  12. Выводится сумма всех чисел.
  13. Выводится количество чисел.
  14. С помощью цикла while в обратном порядке выписываются только четные числа, которые считываются в переменную y.
  15. Если число y делится на 2 без остатка, то оно выводится на экран.
  16. С помощью цикла while в обратном порядке выписываются только нечетные числа, которые считываются в переменную y.
  17. Если число y не делится на 2 без остатка, то оно выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.308 из 5
Похожие ответы