On-line: гостей 0. Всего: 0 [подробнее..]
Программисты всех стран, объединяйтесь!

АвторСообщение



ссылка на сообщение  Отправлено: 27.09.22 19:23. Заголовок: Нахождение произведения цифр числа отличных от нуля с отдельно введенной функцией


#include <stdio.h>
#include <stdlib.h>


int pr()

{
int x,y,c;
while (x>0)
{
c=x%10;
if (c==0) x=x/10; else {
y=y*(x%10); x=x/10;}
}
return y;
}
int main()
{
int a,b,c;
b=1;
a=0;
scanf("%d", &a);
if (a<0) a=-a;
b = pr(a,b,c);
printf("Proizvedenie: %d\n", b);
return 0;
}


Требования универа чтобы ф-ция pr() была именно отдельной. Прога работает если функция pr() вводится не отельно, а внутри main(), а также если ввести переменные a,b,c глобально, но так нельзя. Прошу помощи

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 1 [только новые]





ссылка на сообщение  Отправлено: 27.09.22 19:37. Заголовок: Если я правильно пон..


Если я правильно понял, вам нужно найти произведение цифр отличных от 0 числа, переданного в функцию в качестве аргумента.

Во-первых, скорей всего вы собираетесь иметь дело с неотрицательными числами. В этом случае аргумент функции следует объявить, как имеющий тип unsigned int вместо int.

Если пользователь функции передаст в качестве аргумента число 0, то функция должна возвращать 0.

Функция может выглядеть следующим образом


#include <stdio.h> 

unsigned int pr( unsigned int x )
{
const unsigned int Base = 10;
unsigned int product = x == 0 ? 0 : 1;

for ( ; x != 0; x /= Base )
{
if ( x % Base != 0 ) product *= x % Base;
}

return product;
}

int main( void )
{
unsigned int x;

printf( "Enter a non-negative number: " );

if ( scanf( "%u", &x ) == 1 )
{
printf( "The product: %u\n", pr( x ) );
}

return 0;
}


Я надеюсь, что не сделал опечатки, когда набирал текст. Вместо английских слов, используемых в программе в виде сообщений, вы можете использовать русские слова, написанные английскими буквами.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 3
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет