#include<math.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,m,r,i,min,max, countmax, countmin;
countmin = countmax = 0;
for(;;)
{
printf("Vvedite natur chislo: \n");
scanf("%d",&n);
if(!n)
break;
for(m=9;n;n/=10)
{
if(m>n%10) {
m=n%10;
countmin=1;
} else if (m==n%10)
countmin++;
}
printf("min=%d \n",m);
for(r=0;n;n/=10)
{
if(r<n%10) {
r=n%10;
countmax = 1;
} else if (r == n%10)
countmax++;
}
printf("max=%d \n",r);
}
printf("multiplication = %d\n", (pow(max, countmax) * pow(min, countmin)));
return 0;
}
/* 179959.c */
/* #include<math.h> в данной трактовке не требуется*/
#include<stdio.h>
int main()
{
int n; /* вводимое число */
int m; /* временная переменная для хранения левой части числа n после отсечения очередной правой цифры */
int r; /* результат */
int i; /* счетчик цикла */
int min; /* наименьшая из цифр, встречающихся в числе */
int max; /* наибольшая из цифр, встречающихся в числе */
int digits[10]; /* массив для хранения числа вхождений каждой цифры */
for(;;)
{
/* пока не прочитано число, количество цифр равно нулю */
for (i=0; i<10; ++i)
digits[i]=0;
printf("Vvedite natur chislo: \n");
scanf("%d",&n);
if(!n)
break;
m=n; /* не будем трогать n, введем еще переменную */
while (m>0)
{
++digits[m%10];
m/=10;
}
/* проходя по массиву слева, находим min */
for (i=0; i<10 && digits[i]==0; ++i)
;
min = i;
/* проходя по массиву справа, находим max */
for (i=10-1; i>=0 && digits[i]==0; --i)
;
max = i;
r=1;
for (i=0; i<digits[min]; ++i)
r*=min;
if (max>min)
for (i=0; i<digits[max]; ++i)
r*=max;
printf("max=%d\tmin=%d\tr=%d\n",max, min, r);
}
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.