#include<stdio.h>
#include<math.h>
int main()
{
int m,n,a,t,g,s,b,q,w,x;
scanf(“%d %d”,&m,&n);
if(m>n)
{
m=t;
m=n;
n=t;
}
do{
w++;
x/=10;
}while(x>10);
for(a=m+1;m<a<n;a++)
q=a/1000;
b=a/100;
s=a/10;
g=a%10;
if(pow(g+s+b+q,w)==a)
printf(“%d\n”,a);
return 0;
}
请高手讲解
#include<math.h>
int main()
{
int m,n,a,t,g,s,b,q,w,x;
scanf(“%d %d”,&m,&n);
if(m>n)
{
m=t;
m=n;
n=t;
}
do{
w++;
x/=10;
}while(x>10);
for(a=m+1;m<a<n;a++)
q=a/1000;
b=a/100;
s=a/10;
g=a%10;
if(pow(g+s+b+q,w)==a)
printf(“%d\n”,a);
return 0;
}
请高手讲解
解决方案
5
错误蛮多的,w和x都没初始化
你的
你的
do{ w++; x/=10; }while(x>10);
怎么可能跑得起来
5
另外假如m和n相差1的话
for(a=m+1;m<a<n;a++)
是进不去的,这样q也没初始化
最后
if(pow(g+s+b+q,w)==a) printf("%d\n",a);
你可以加个else来打印一些错误提示
5
if(m > n) { t = m; /*这句应该这样*/ m = n; n = t; }
这个程序看不出来你要做什么。
x,w都没初始化,也没输入值;
定义那么多变量,也看不出这些变量要做什么。
建议:把程序贴出来的同时,把你的程序需求说一下,这样,即使看不懂代码的意思,也可以通过需求来判断程序的问题;
5
if(m>n)
{
m=t;
m=n;
n=t;
}t没有值,不能赋给m;
for(a=m+1;m<a<n;a++)
这个表示也是错的,m<a<n错了,可以写成m<a&&a<n;
其他的不知道你的程序要干什么,不知道怎么改了,
{
m=t;
m=n;
n=t;
}t没有值,不能赋给m;
for(a=m+1;m<a<n;a++)
这个表示也是错的,m<a<n错了,可以写成m<a&&a<n;
其他的不知道你的程序要干什么,不知道怎么改了,