c语言在一种室内游戏中,魔术师要每位观众心里想一个三位数abc,然后魔术师让观众心中记下acb.b

2025-04-03 18:40:24
推荐回答(4个)
回答1:

#include 
#include
#include

 int Magic(int m);
 int Tput( int a, int b, int c );

 main()

int m;  //观众求出的五个数的和
int M;  //魔术师算出的三位数

scanf("%d",&m);
M=Magic(m);


if(M==99)   //循环过后,所有三位数都不符合
printf("The sum you calculated is wrong!\n");
else
printf("The number is %d\n",M);

system("pause");
 }

 //函数功能:输出观众心里的三位数
 int Magic(int m)
 {
int a, b, c;  //分别储存循环中三位数的百十个位
int i ;  //循环变量
int s ;  //储存循环中计算的和
 
//循环遍历每一个三位数
for(i=999;i>99;i--)
{
//分离每个三位数
a=i/100;
b=i%100/10;
c=i%10;

s=Tput(a,c,b)+Tput(b,a,c)+Tput(b,c,a)+Tput(c,a,b)+Tput(c,b,a);

if(s==m)
break;
}
return i;
 }

 //函数功能:输入百十个位,输出一个三位数
 int Tput( int a, int b, int c )
 {
return a*100+b*10+c;
 }

回答2:

#include
int GuessNumber(int sum,int guess);
int DealNumber(int x);
void DisPlay(int i);
int main()
{
int sum, guess;
int i = 99, find = 0;
printf("Please consider three-digit number,and tell the sum of these five numbers\n");
scanf("%d", &sum);
do
{
i++;
guess = DealNumber(i);
find=GuessNumber(sum, guess);
//printf("第%d次,sum=%d,guess=%d\n", i-99, sum, guess);
} while (i < 1000 && find==0);//这两个判断条件必须同时满足
return 0;
}
int GuessNumber(int sum, int guess)
{
if (sum == guess)
{
return 1;
}
else
{
return 0;
}
}
int DealNumber(int x)
{
int a, b, c;
a = x / 100;
b = x % 100 / 10;
c = x % 10;
x = (a * 100 + c * 10 + b) + (b * 100 + a * 10 + c) + (b * 100 + c * 10 + a) + (c * 100 + a * 10 + b) + (c * 100 + b * 10 + a);
return x;
}
void DisPlay(int i)
{
if (i >= 1000)
{
printf("你算错了!\n");
}
else
{
printf("你想的是:%d\n", i);
}
}

回答3:

467845467

回答4:

随便算了一下 ,443代入进去算得的和是1972埃。。你确定题目没问题?