1

Тема: Яка помилка в коді?

Добридень. Виконувала завдання: Дано ціле чотиризначне число. Визначити, чи серед цифр числа є хоча б один
0. Як на мою думку, потрібно було ще використовувати "else", але воно не робить. Вкажіть мені про мою помилку, будь ласка.

#include <stdio.h>
#include <math.h>

int main() {
    int a; 
    int b, c, d, n;
    
    printf("Please enter a:\n");
    scanf("%d", &a);
    b = a % 100 / 100;
    c = a / 100; 
    d = a / 10 % 10;
    n = a % 10; 
    
    if (b == 0 || c == 0 || d == 0 || n == 0)
    {
        printf("Zero is found\n");
    }
    else {
        printf("Zero is not found\n");
    }
}

2 Востаннє редагувалося koala (24.10.2022 15:56:05)

Re: Яка помилка в коді?

А чому ви вирішили, що тут є помилка в коді? Що саме "не робить"?

3

Re: Яка помилка в коді?

a % 100 / 100

завжди 0.

Подякували: koala1

4

Re: Яка помилка в коді?

koala написав:

А чому ви вирішили, що тут є помилка в коді? Що саме "не робить"?

Коли ввожу нуль у будь-якому порядку то все гаразд, але коли число без нуля, то видає одне і те саме "Zero is found"

5

Re: Яка помилка в коді?

та й узагалі...

int has_zero = 0;
int a;
scanf("%d",&a);
for(int b = a; b>0 && !has_zero; b/=10) {
  if(b%10==0) {
    has_zero = 1;
  }
}
if(has_zero)...
else ...
Подякували: leofun011