读入3个整数A和B和C(设用户输入保证10<=A<B<C<=50)。如果C是A和B的公倍数,则输出闭区间[A,C]范围内的所有素数并求平均数。如果C不是A和B的公倍数,则将B的各位数字逆序输出。
仅供参考!谢谢!
#include <stdio.h>
#define F !(C > B && B > A && A >= 10 && C <= 50)
int isp(int n)
{
for (int i = 2; i < n / 2; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
int main(int argc, char *argv[])
{
int A, B, C, sum = 0, n = 0;
do
{
scanf("%d%d%d", &A, &B, &C);
if (F)
puts("输入超出范围!请重新输入!");
} while (F);
if (C % A == 0 && C % B == 0 && C > A && A >= 10 && B > A && C <= 50)
{
for (int i = A; i <= C; i++)
{
if (isp(i))
{
n++;
sum += i;
printf("[%d,%d]之间的素数%d\n", A, C, i);
}
}
printf("\n平均数:%d\n", sum / n);
}
if ((C % A != 0 || C % B != 0) && C > A && A >= 10 && B > A && C <= 50)
{
int tmp = B;
printf("%d逆序输出为:", B);
while (tmp)
{
printf("%d", tmp % 10);
tmp /= 10;
}
}
puts("");
return 0;
}