给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。相关的知识,希望对你有一定的参考价值。

给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。
2 3 5 8 13 21
┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……
1 2 3 5 8 13
例如,若n = 5,则应输出:8.391667。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
/************found************/
void fun ( int n )
int a, b, c, k; double s;
s = 0.0; a = 2; b = 1;
for ( k = 1; k <= n; k++ )
/************found************/
s = s + (Double)a / b;
c = a; a = a + b; b = c;

return s;

main( )
int n = 5;
printf( "\nThe value of function is: %lf\n", fun ( n ) );


什么时候FUN前要加类型,是有RETURN的时候吗

(double)a/b为什么不用改成(double)(a/b)

如果你要返回一个数值,就要加类型。简单一点,就是这个函数要是算出一个东西来,就要加类型;如果只是做了一件事比如排序什么的,就不要加类型

回答你最后一句话的问题,改成你那样是错的:两个整型进行除法计算,你应该知道吧,会把小数部分忽略掉,(double)(a/b),就是把算出来的错误结果进行强制转换,没有任何意义;如果先对a进行强制转换,那么这个浮点数在和另一个整型数进行计算的时候,根据c语言的规则,整型数会自动转换成浮点数,算出来的结构就是正确的。追问

是不是和是否有return有关

追答

你是说那个double的问题吗?那个跟return没有关系,在任何地方都通用。

追问

我说FUN

追答

哦对,fun确实要加double而不是void,我只看你的问题了,没看代码,呵呵。你说通过return来看函数的类型,在改错题例这么看确实没错;不过有个先后顺序的,你要先知道函数有返回值,才会写出return语句啊

参考技术A 在定义函数时,函数前要加返回值的数据类型名。如果函数体最后没有“return ;”这个语句,即没有返回值,则函数名前面的类型名就是“void fun()”
而你定义的函数,是有返回值的。并且返回值数据类型是双精度。所以:
void fun ( int n )
应改为:double fun(int n)
因为返回值是一个双精度的数据类型。
另外:
s = s + (Double)a / b;
要改为小写的字母:应为 s = s + (double)a / b;
参考技术B 试题解析: (1)double fun( int n)
(2)s=s+(double)a/b;
【考点分析】
本题考查:函数定义,函数定义的一般形式为:”类型标识符函数名(形式参数表列)“,其中类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。
【解题思路】
(1)由语句”return(S)”和变量s定义为double数据类型可知,该函数定义时其类型标识符为double类型。
(2)注意数据类型double的书写格式。
【解题宝典】
确定函数类型标识符在填空和改错题中经常考到,如果函数没有返回值,则函数定义为void型;如果函数有返回值,该函数类型应与返回值类型一致;如果不定义函数类型标识符,则系统默认为int型。

函数fun的功能是将形参给定的字符串整数浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在屏幕上

#include  <stdio.h>
void fun(char  *s, int  a, double  f)
{
/**********found**********/
  FILE* fp;//定义文本文件类型
  char  ch;
  fp = fopen("file1.txt", "w");
  fprintf(fp, "%s %d %f\n", s, a, f);
  fclose(fp);
  fp = fopen("file1.txt", "r");
  printf("\nThe result :\n\n");
  ch = fgetc(fp);
/**********found**********/
  while (!feof(fp))//判断文件是否结束 
{
/**********found**********/
    putchar(ch);//显示读出的字符 
	ch = fgetc(fp);  
}
    putchar(‘\n‘);
    fclose(fp);
}
main()
{ char  a[10]="Hello!";    int  b=12345;
  double  c= 98.76;
  fun(a,b,c);
}

  

以上是关于给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。的主要内容,如果未能解决你的问题,请参考以下文章

编写函数fun求一个不多余5位的正整数的位数,该数在主函数中输入

下列给定程序中函数fun的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数为止,π/4=1-1/3+1/5-1/7+...,例如,程序运行后,输入0.0001,程序输出3.1414(

c语言用fun函数求n以内的素数,求n=20的值?

C语言试题五十九之请编写一个函数fun,它的功能时:求fibonacci数列中大于t的最小的一个数,结果由函数返回。

C语言试题五十九之请编写一个函数fun,它的功能时:求fibonacci数列中大于t的最小的一个数,结果由函数返回。

C语言求平均值