找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 128|回复: 1

C语言计算复杂的数学公式

[复制链接]

37

主题

21

回帖

241

积分

中级会员

积分
241
发表于 2026-3-25 11:57:43 | 显示全部楼层 |阅读模式
下面是一个源程序文件modi1.c。在此程序中, 函数fun的功能是:根据整型参数m, 计算如下公式的值。

例如, 若m = 2000, 则应输出0.000160。
请改正程序中的错误, 使它能得出正确的结果。
注意:部分源程序在文件modi1.c中。
不要改动main函数, 不得增行或删行, 也不得更改程序的结构 !

考点:数据类型及其运算

modi1.c代码
  1. #include  <stdlib.h>

  2. #include  <conio.h>

  3. #include  <stdio.h>

  4. /*************found**************/

  5. fun (int m)

  6. { double y=0, d;

  7.   int i;

  8. /*************found**************/

  9.   for(i=100,i<=m,i+=100)

  10.      {d=(double)i*(double)i;

  11.       y+=1.0/d;

  12.      }

  13.   return(y);

  14. }

  15. void main()

  16. { int n=2000;

  17.   system("CLS");

  18.   printf("\nThe result is %1f\n",fun(n));

  19. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

37

主题

21

回帖

241

积分

中级会员

积分
241
 楼主| 发表于 2026-3-25 11:58:31 | 显示全部楼层
试题解读:
(1) 题目要求在函数fun中求级数前m项和, 可用循环语句, 每次计算级数中的一项, 然后累加。
第一处错误在于定义fun(int m), 由函数的返回值可知应该定义为double fun(int m)。
(2) for (i = 100, i <= m, i += 100) 中是一个简单的语法错误。
for循环语句的形式为for(表达式1; 表达式2; 表达式3), 其表达式之间应以";"相隔。

参考答案:
(1) double fun(int m)
(2) for (i = 100; i <= m; i += 100)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|郎哥嵌入式编程社区 ( 鲁ICP备15001146号-5 )

GMT+8, 2026-4-28 03:37 , Processed in 0.014324 second(s), 20 queries .

快速回复 返回顶部 返回列表