Составьте алгоритм и программу для определения номера автомашины - C (СИ)

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

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

Три приятеля были свидетелями нарушения правил дорожного движения. Номер автомобиля - четырехзначное число - никто не запомнил. Из их показаний следует, что номер делиться на 2, на 7 и на 11, в записи номера участвуют только две цифры, сумма цифр номера равна 30. Составьте алгоритм и программу для определения номера автомашины.

Решение задачи: «Составьте алгоритм и программу для определения номера автомашины»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int isValid(char number[])
{   int sum = 0, i = 0, rightSum = 0, rightDigits = 0, count = 0;
    char a,b;
    
    for( ;i<4; i++)
        sum += (int)number[i] - 48;
    if(sum == 30)
        rightSum = 1;
 
    a = number[0];
    count++;
    for(i = 2; i<4; i++)
    {   if(count == 1 && number[i] != a)
        {   b = number[i];
            count++;
        }
        else if(count == 2 && number[i] != a && number[i] != b)
            count++;
    }
 
    if(count<=2)
        rightDigits = 1;
 
    return rightSum && rightDigits;
}
 
int main()
{   char buf[6];
    int a = 2*7*11, i = 2, check;
    
    for(;;i++)
    {   check = a*i;
        itoa(check, buf, 10);
        if(strlen(buf) < 4)
            continue;
        else if(strlen(buf)==4 && isValid(buf))
        {   printf("Number: %s", buf);
            break;
        }
    }
 
    getchar();
    return 0;
}

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

  1. В функции isValid проверяется, является ли введенный номер автомобиля допустимым.
  2. В функции main создается массив buf, в который с помощью функции itoa преобразуется число, полученное в результате умножения числа a на текущее значение переменной i.
  3. Если длина строки, полученной из buf, меньше 4, то продолжается проверка следующего числа.
  4. Если длина строки равна 4 и функция isValid возвращает значение true, то выводится найденный номер автомобиля и программа завершается.

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


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

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

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