fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define MAX_CARS 100
  6. #define MAX_STRING 50
  7.  
  8. struct Car {
  9. char brand[MAX_STRING];
  10. char color[MAX_STRING];
  11. char number[10];
  12. char ownerLastName[MAX_STRING];
  13. char address[MAX_STRING];
  14. };
  15.  
  16. int main() {
  17. int n, k, count = 0;
  18. char targetBrand[MAX_STRING];
  19. char targetDigits[10];
  20. struct Car cars[MAX_CARS];
  21.  
  22. printf("Введіть кількість автомобілів: ");
  23. scanf("%d", &n);
  24. getchar(); // очищення буфера
  25.  
  26. for (int i = 0; i < n; i++) {
  27. printf("\nАвтомобіль #%d\n", i + 1);
  28.  
  29. printf("Марка: ");
  30. fgets(cars[i].brand, MAX_STRING, stdin);
  31. cars[i].brand[strcspn(cars[i].brand, "\n")] = 0;
  32.  
  33. printf("Колір: ");
  34. fgets(cars[i].color, MAX_STRING, stdin);
  35. cars[i].color[strcspn(cars[i].color, "\n")] = 0;
  36.  
  37. printf("Номер: ");
  38. fgets(cars[i].number, 10, stdin);
  39. cars[i].number[strcspn(cars[i].number, "\n")] = 0;
  40.  
  41. printf("Прізвище власника: ");
  42. fgets(cars[i].ownerLastName, MAX_STRING, stdin);
  43. cars[i].ownerLastName[strcspn(cars[i].ownerLastName, "\n")] = 0;
  44.  
  45. printf("Адреса власника: ");
  46. fgets(cars[i].address, MAX_STRING, stdin);
  47. cars[i].address[strcspn(cars[i].address, "\n")] = 0;
  48. }
  49.  
  50. // Введення марки для пошуку
  51. printf("\nВведіть марку автомобіля для пошуку: ");
  52. fgets(targetBrand, MAX_STRING, stdin);
  53. targetBrand[strcspn(targetBrand, "\n")] = 0;
  54.  
  55. // Введення початкових цифр номера
  56. printf("Введіть початкові цифри номера: ");
  57. fgets(targetDigits, 10, stdin);
  58. targetDigits[strcspn(targetDigits, "\n")] = 0;
  59.  
  60. k = strlen(targetDigits);
  61.  
  62. // Пошук та виведення результатів
  63. printf("\nРезультати пошуку:\n");
  64. printf("=======================================\n");
  65.  
  66. for (int i = 0; i < n; i++) {
  67. // Перевірка марки
  68. if (strcmp(cars[i].brand, targetBrand) == 0) {
  69. // Перевірка початкових цифр номера
  70. if (strncmp(cars[i].number, targetDigits, k) == 0) {
  71. printf("Автомобіль #%d:\n", i + 1);
  72. printf(" Марка: %s\n", cars[i].brand);
  73. printf(" Колір: %s\n", cars[i].color);
  74. printf(" Номер: %s\n", cars[i].number);
  75. printf(" Власник: %s\n", cars[i].ownerLastName);
  76. printf(" Адреса: %s\n", cars[i].address);
  77. printf(" --------------------\n");
  78. count++;
  79. }
  80. }
  81. }
  82.  
  83. if (count == 0) {
  84. printf("Автомобілів марки '%s' з номерами, що починаються на '%s', не знайдено.\n",
  85. targetBrand, targetDigits);
  86. } else {
  87. printf("Знайдено автомобілів: %d\n", count);
  88. }
  89.  
  90. return 0;
  91. }
Success #stdin #stdout 0s 5288KB
stdin
3

Toyota
Чорний
АА1234ВС
Іванов
Київ, вул. Центральна, 1

Toyota
Білий
АА5678ВС
Петров
Львів, вул. Головна, 2

Honda
Сірий
АА1111ВС
Сидоренко
Одеса, вул. Морська, 3
stdout
Введіть кількість автомобілів: 
Автомобіль #1
Марка: Колір: Номер: Прізвище власника: Адреса власника: 
Автомобіль #2
Марка: Колір: Номер: Прізвище власника: Адреса власника: 
Автомобіль #3
Марка: Колір: Номер: Прізвище власника: Адреса власника: 
Введіть марку автомобіля для пошуку: Введіть початкові цифри номера: 
Результати пошуку:
=======================================
Автомобілів марки 'Honda' з номерами, що починаються на 'Сіри�', не знайдено.