C语言 函数调用请大侠们 帮帮忙 急用!!

作者&投稿:尹京 (若有异议请与网页底部的电邮联系)
C语言 调用函数~

这是一个函数的递归调用,大致步骤如下
1.主函数call z=f(3)
2.f(3)函数调用:
传入的参数不等于1,也不等于0,此时运行:
y=x*x-f(x-2); => y=3*3-f(3-2) -> y=9-f(1);
3.运行f(1)函数调用
传入的参数等于1,return(3),此时返回值到上一层f()函数调用:
4.返回到步骤2的 y=9-f(1)处,此时 f(1)=3 所以结果为:
y=9-3 = 6,执行return 返回主函数
5。主函数输出6

递归函数的要点就在于调用自己,它始终都有一个结束调用的条件,此例为 x==0 || x==1.
如果有不明白的再问我。

主函数中调用了MIN函数,但MIN函数没有被声明,编译器根本不知道MIN这个玩意是什么东西,因此报错。
正确的做法主要有两种:
1.在c=MIN(a,b);之前加入声明MIN(int x, int y);。可以加在main()内部,也可以在main()函数定义之前。但是一般推荐在main()之前声明,这样如果其它函数要使用MIN,可以不用另外声明。
2.注意函数定义包含了声明。因此可以把MIN整个定义移到main()之前,这样就不用另外声明了。
以上是ISO C90标准范畴内的讨论。在C99中,去除了可以省略函数返回值类型为int的特性,因此如果编译器遵循这个标准,LZ的代码至少会出现另外两个错误。在main和MIN定义前加int就可以了。如果有声明,那么声明也要包含返回值类型,例如int MIN(int x, int y);。这样代码可移植性更好。
最后,还可能有另一个隐蔽的错误:MIN可能在stdio.h或其它被间接包含的文件中被定义(大写名称可能会被库定义为一个宏)。如果出现了这种情况,把MIN换个不冲突的名称就可以了。
====
[原创回答团]

不是很明白你的意思。如果就是想让speed3()函数调用十次后跳出那你下面的speed3()函数不用看。在上面改一下就可以了。
把这个:else if(N<=1) speed3();
改成:else if(n<=1){ for(t=1;t<=10;t++)speed3()}
在最前面int 里面多定义个t 就可以了。
还有else if(1<N<=2) speed2(); 这个是错的。
1<N<=2是不行的要写成:N>1&&N<=2

加 int i;

前两个条件 包含了 条件 N > 1.
余下的 else 自然是 N <= 1, 所以可以省去第三个条件,直接写else 就可以了:

if(N>2) {speed1(); }
else if(1<N && N<=2) {speed2();}
else {
for (i=0;i<10;i++) speed3();
}


哈密地区13478682055: C语言函数调用问题 - 高手请帮忙 -
潜发奈狄: 可以把这个函数的主函数的内容放在一个子函数中,设为f(3),可以用f(1)调用f(...

哈密地区13478682055: 懂c语言的大侠帮个忙程序哪里出错了 函数到底如何调用啊? -
潜发奈狄: 你的第33行代码 中的 op是函数调用吧?但是你的函数定义时函数的形式为 int op(int,int,int,int),括号内为函数形式参数,所以在调用的时候,要传入实际参数.比如用 op(1,2,3,4); 1\2\3\4可以用所有能够初始化int的数据代替.

哈密地区13478682055: C语言写了一个小程序,统计输入字符串长度的.函数调用不太会,请大侠帮忙调试一下 -
潜发奈狄: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include<stdio.h>//头文件只需要这个intstrll(char*str ); //函数名字不能用strlen否则不会出结果的 strlen是内置函数intmain() {char*astr;//应该为指针astr = "abc";strll(astr); //指针直接过...

哈密地区13478682055: C语言函数用法 请大神帮忙 -
潜发奈狄: #include "stdlib.h"…………int main(){ ………… system("rm c:\\a\c\b\abc.txt"); ………… return 0;}其实就是用system("***"), ***是命令

哈密地区13478682055: 关于c语言函数调用问题(求大神帮忙) -
潜发奈狄: #include#define SIZE 10int max(int a[],int count);float average(int a[],int count);int copy_to_b(int a[],int b[],int average_num,int count);void sort(...

哈密地区13478682055: 函数调用例子
潜发奈狄: //你好,C语言自定义函数应遵循先声明再调用原则,如有疑问,请追问或翻书.#include <stdio.h> int add(int x, int y); //声明自定义add函数,遵守先声明再调用原则 int main() { int a,b,sum; a=10; b=24; sum = add(a,b); printf("sum= %d\n",sum); return 0; }//将add函数定义在此处 int add(int x, int y) { int z; z = x+y; return(z); }

哈密地区13478682055: 有关C语言函数调用的一个问题,高手请帮忙 -
潜发奈狄: 貌似错误啊,怎么出结果了?而且你C也没有定义,能直接用?还是定义为外部变量了?下面这样写是可以的.#include <stdio.h>int c;void fun(int a,int b) {c=a*b; } /*这个是定义的函数*/ void main() {fun(2,3); /*调用*/printf("%d\n",c); }

哈密地区13478682055: C语言程序设计题,输入1个数,判断是奇数还是偶数,用调用函数的方法 -
潜发奈狄: #include "stdio.h" int s(int a) { return(a%2); } main() { int x; printf("请输入一个整数:"); scanf("%d",&x); if(s(x)==1) printf("%d是一个奇数",x); else printf("%d是一个偶数",x); } 先编写一个判断是素数还是偶数的函数,偶数就返回0,否则就返回1,然后在主函数调用函数,根据返回值判断素数还是偶数.

哈密地区13478682055: 各位大侠,C语言有作业,帮忙想想行吧: 输入三个数求最大和最小值,要求用调用函数来做,谢谢了
潜发奈狄: #include<stdio.h> int getMax(int a,int b,int c) { return a>b? a:(b>c? b:c); } int getMin(int a,int b,int c) { return a<b? a:(b<c? b:c); } void main() { int a,b,c; printf("Please input three numbers:\n"); scanf("%d",&a); scanf("%d",&b); scanf("%d",&...

哈密地区13478682055: 两个关于函数调用的C语言问题,求素数和计算字符大神们帮帮忙 -
潜发奈狄: 1. #include<stdio.h> #include<math.h> int su(int x); void main() { int i; for(i=100;i<=200;i++) if(su(i)==1) printf("%d ",i); } int su(int x) { int k,j; k=sqrt(x); for(j=2;j<=k;j++) if(x%j==0)break; if(j<=k) return 0; else return 1; } 2. #include<stdio.h> void tj(char *...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网