#include <math.h>
int number(int n,int k)
{
int i=1,sum=0
for(ii<=ki++)
{
sum+=(int)(pow(n%10,k))
n/=10
}
return sum
}
int main()
{
int i,n
scanf("%d",&n)
for (i=(int)(pow(10,n-1))i<(int)(pow(10,n))i++)
{
if (i==number(i,n))
printf("%d ",i)
}
return 0
}
主要利用二元一次方程的解答的数学方法求出方程解的表达式,然后用代码实现:#include
"stdafx.h"
#include
"math.h"
void
main()
{
double
a,b,c
printf("请输入二元方程的二次项系数:")
scanf("%lf",
&a)
printf("请输入二元方程的一次项系数:")
scanf("%lf",
&b)
printf("请输入二元方程的常数项:")
scanf("%lf",
&c)
double
d
=
b*b
-
4*a*c
double
x1
=0,
x2
=
0
if
(d
>
0)
{
x1
=
(-b+sqrt(d))/(2*a)
x2
=
(b-sqrt(d))/(2*a)
printf("方程第一个解为:%lf\n",
x1)
printf("方程第二个解为:%lf\n",
x2)
}
else
{
printf("此方程无解")
}
}
错误的地方有三处:
1,用double声明的变量a,b,输入格式却是“f",应该用”lf"来输入;或者把double 变为:float。
2,if语句中t=0的意思是把0赋予t,这样if语句就恒为假了。应该为:if(t==0)
3,otherwise 表否则,C语言中是不存在的,应该为else。
所以,正确的代码应该为:
#include<stdio.h>int main()
{
float a,b
int t,c1,c2
scanf("%f",&a)
b=a+0.5
c1=(int)a
c2=(int)b
t=c1-c2
if(t==0) printf("%d",c1)
else printf("%d",c2)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)