C程序,编译的时候提示没有错误,可以运行,但输入数据出来的结果是错的,为什么?
#include<stdio.h>intmymood(int);main(){intn;floatm;printf("inputanumber:");scanf("%d"...
#include<stdio.h>
int mymood(int);
main()
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
}
int mymood(int m)
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1/(k*k);
return t;
}
这个程序是计算t=1-1/4-1/9-1/16-...-1/(m*m) 展开
int mymood(int);
main()
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
}
int mymood(int m)
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1/(k*k);
return t;
}
这个程序是计算t=1-1/4-1/9-1/16-...-1/(m*m) 展开
2个回答
2013-03-22
展开全部
mymood的返回类型不对。
另外k*k要强制转换成float型。
#include<stdio.h>
float mymood(int m)
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1/(float)(k*k);
return t;
}
int main(void)
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
return 0;
}
另外k*k要强制转换成float型。
#include<stdio.h>
float mymood(int m)
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1/(float)(k*k);
return t;
}
int main(void)
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
float mymood(int);//原来为int mymood(int);
main()
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
}
float mymood(int m)//原来为int mymood(int m);
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1.0/(k*k);//原来为t=t-1/(k*k);因为1是整型,所以1/(k*k)结果为0
return t;
}
float mymood(int);//原来为int mymood(int);
main()
{
int n;
float m;
printf("input a number:");
scanf("%d",&n);
m=mymood(n);
printf("the result is %f\n",m);
}
float mymood(int m)//原来为int mymood(int m);
{
float t=1.0;
int k;
for(k=2;k<=m;k++)
t=t-1.0/(k*k);//原来为t=t-1/(k*k);因为1是整型,所以1/(k*k)结果为0
return t;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询