Определить есть ли в числе цифра 3, если есть напечатать это число - C (СИ)
Формулировка задачи:
Задается массив, рандомный из 10 чисел в диапазоне от -20 до 20.Найти среди его чисел, такое в котором есть цифра 3 и напечатать это число. Написал программу, что надо изменить что бы правильно работала.
int d,i,b;
for(i=1;i<n;i++)
{
while(a[i]!=0)
{d=abs(a[i])%10;
if(d==3)
{
b=a[i];
}
a[i]/=10;
}
printf("i=%d\n",b);
}Решение задачи: «Определить есть ли в числе цифра 3, если есть напечатать это число»
textual
Листинг программы
if (d == 3) {
while (b) {
b /= 10;
d = b % 10;
if (d == 2) {
printf("a[%d]=%d\n", i, a[i]);
break;
}
}
break;
}
else if (d == 2) {
while (b) {
b /= 10;
d = b % 10;
if (d == 3) {
printf("a[%d]=%d\n", i, a[i]);
break;
}
}
break;
}
Объяснение кода листинга программы
В этом коде определена функция, которая проверяет, есть ли в числе цифра 3. Если это так, она печатает это число. Список действий:
- Инициализировать переменную
dзначением 3. - В цикле while перебирать число
b. - Делить
bна 10 и обновлятьdостатком от деления. - Если
dравно 2, то в цикле while печатать значениеa[i]и прерывать цикл. - Если
dравно 3, то в цикле while печатать значениеa[i]и прерывать цикл. - Если
dравно 2 или 3, то прерывать всю функцию. - Иначе, если
dне равно 2 или 3, то ничего не делать.