Составьте алгоритм и программу для определения номера автомашины - 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; }
Объяснение кода листинга программы
- В функции isValid проверяется, является ли введенный номер автомобиля допустимым.
- В функции main создается массив buf, в который с помощью функции itoa преобразуется число, полученное в результате умножения числа a на текущее значение переменной i.
- Если длина строки, полученной из buf, меньше 4, то продолжается проверка следующего числа.
- Если длина строки равна 4 и функция isValid возвращает значение true, то выводится найденный номер автомобиля и программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д