C语言:高手们帮我解释一下这个程序~~

doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.... double f(double x);
main ()
{ double a=0;int i ;
for(i=0;i<30;i+=10)
a+=f((double)i);
printf("%5.0f\n",a);
}
double f(double x )
{ return x*x+1;}
程序运行后输出的结果是503
展开
 我来答
我靠片云
2012-03-21
知道答主
回答量:18
采纳率:0%
帮助的人:8.6万
展开全部
刚开始i=0,a=0,然后调用函数double f(double x ),返回值为1,a=a+1,然后i=10,继续调用函数double f(double x ),返回值为101,a=a+101=102,然后i=20,继续调用函数double f(double x )
,返回值为401,a=a+401=503,所以最后输出503
rofcto
2012-03-21 · TA获得超过477个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:106万
展开全部
把我的代码拷贝过去运行一次
#include <stdio.h>
#include <stdlib.h>

double f(double x);

int main ()
{
double a=0;//初始化a为0
int i ; //声明i
for(i=0;i<30;i+=10)//循环3次,
{
a+=f((double)i); //每次循环时a += (i*i+1)
printf("a = %5.0f\n", a);
}
/*
*第一次f((double)i) = 0*0+1 = 1
*第二次f((double)i) = 10*10+1 = 101
*第三次f((double)i) = 20*20+1 = 401
*/
printf("%5.0f\n",a);
}

double f(double x )
{
return x*x+1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rhythmkay
2012-03-21 · TA获得超过362个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:163万
展开全部
#include "stdio.h"
double f(double x);
void main ()
{ double a=0;int i ;
for(i=0;i<30;i+=10) //外层循环共3次,a=a+f(i);
// 执行完一次循环内容a+=f((double)i);后,i=i+10,所以i的值依次为0,10,20.
a+=f((double)i); // 1也就是a=a+f(0)+f(10)+f(20);
//
printf("%5.0f\n",a);
}
double f(double x )
{return x*x+1;} // 2 返回x的平方再加1的值
//程序运行后输出的结果是503
//有1与2,表达为数学问题就是(0^2+1)+(10^2+1)+(20^2+1)
// =3+100+400=503
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式