c 语言初学,简单程序问题。调用同一个函数三次,第一输出最大值,第二次最小,第三次和。

作者&投稿:郁梅 (若有异议请与网页底部的电邮联系)
C程序问题,一个相同的函数,调用两次,目的一样为什么第一次调用的时候第一个对应字符不会被计入?~

因为m,i是静态局部变量,静态局部变量是这样的:第一次运行子程序时,zhidao执行初始化,子程序结束时,静态局部变量的存储空间不会被内回收,也就是说它们的值会被保存起来。第二次运行子程序时,不再初始化静态局部容变量了,而是直接调用,然而上一次运行后的值被保存下来了,所以就会用第一次的m,i值了

MAX函数中,比较大小的第二步是和z比较,还有if(m>z) 后面的 m=m 可以不用写,空语句进入else就行了,你应该懂我意思。

#include <stdio.h>
void main()
{
int max(int ,int);
int min(int, int);
int add(int,int);
int a, b,ma,mi,ad;

printf("endter a and b: ");
scanf("%d%d",&a,&b);

printf("max= "); //调用这个函数输出最大值
ma= max( a , b);
printf("min= "); //还是调用这个函数输出最小值
mi= min( a , b);

printf("add= ");//还是调用这个函数,输出和
ad= add( a , b);

printf("%d,%d,%d\n",ma,mi,ad);
}

int max(int a, int b )
{
int z;
z=(a>b)?a:b;

return z;
}
int min(int a, int b)
{
int z;
z=(a>b)?b:a;
return z;
}
int add(int a, int b)
{
int z;
z=a+b;
return z;
}//这是我改的程序,你对照着看看,现在没有问题了。你的程序函数调用有问题,而且最重要的一个错误是程序没有输出语句,一般c语言程序输入语句可有可无,但输出语句至少要有一个,输出语句比较多用的是 printf语句,putchar语句

你程序里没定义void process(int x, int y,int (*fun)());的具体实现啊。
你是通过一个函数入口分别调用3个函数,并没有实现用一个函数处理啊,貌似用了4个函数。

还以为你想做个函数,第一输出最大值,第二次最小,第三次和,第四输出最大值,第五次最小,第六次和,第七输出最大值,第八次最小,第九次和.........一直循环呢

你的函数形参定义有问题,改成这个就好了。
void process(int x, int y,int (*fun)(int a,int b));
void process(int x,int y,int (*fun)(int a,int b)){
int result = (*fun)(x,y);
printf("%d\n",result);
}


锡林郭勒盟13624949498: C语言的简单函数调用问题(小白 刚学习C语言)脚本如下 -
宫养苯甲: #include int Func(int a1,int b1,int c1);//返回值方式/*应该提前声明函数,或者你也可以直接把后面函数整个搬到main之前*/ int main() { int a= 1; int b= 22; int c= 4; int result1; result1 = Func(a,b,c); /*你这样直接给result赋值,那么函数func必须是...

锡林郭勒盟13624949498: 一个简单的C语言函数调用
宫养苯甲: 你的average函数的原型是:float average(int stu[], int n); 有两个参数,调用的时候自然要有两个了.第一个是成绩的数组,对吧,第二个n(也就是你后面的10了),是要求平均的元素个素,不知道的话,求平均数怎么知道除以几呢?

锡林郭勒盟13624949498: C语言函数调用 -
宫养苯甲: main() { int i; long sum=0; long func(int);//先运行主函数,运行到这里调用func()函数 for( i=0;i0) ans=n*func(i) else ans=1 return ans; }

锡林郭勒盟13624949498: c语言问题简单函数调用程序解惑
宫养苯甲: 这是个很经常见到的递归调用,递归的时候要进栈,根据题目得出的应该是 (x,2,4) 第三次 (x,4,2) 第二次 (x,8,1) 第一次 x=1+2+4=7.

锡林郭勒盟13624949498: C语言 调用函数变量与主函数变量一样问题,具体程序 -
宫养苯甲: int b是在 所有函数外面定义的 因此是 全局变量 存在静态去 程序运行期间一直存在 main函数 和 fun函数 都只是对b进行调用和操作 举个例子 班里有篮球 你借来玩几天 另一个同学又借去玩几天 但是只要班级还存在 球还是那个球 你俩玩的是同一个球 你在上面写的字 他弄的脏的 都存在于同一个球上

锡林郭勒盟13624949498: C语言的调用 -
宫养苯甲: #include<stdio.h> int main() {int max2(int a,int b);int max4(int a,int b,int c,int d);//这里叫做函数声明,就是说,如果你在这段代码中要用到这个函数就得先在前面声明,当然如果你把函数体写在主函数前面就可以省略词句,一般的较大的程序...

锡林郭勒盟13624949498: C语言中方法的调用问题 -
宫养苯甲: 自定义方法如果放在主函数的下面,需要进行函数说明.解决方法:在主函数上面加上void print(); 或者直接将自定义方法拿到主函数上面去,可以避免错误.返回值用return语句返回

锡林郭勒盟13624949498: C语言函数调用问题 -
宫养苯甲: z=func(func(x++,y++),func(--x,--y));--------------------------------------------------------------------- a ++ 和 ++a就不用多说了吧运行时是从右往左执行的,func(--x,--y)执行的其实func(5,6),然后func(x++,y++)再执行一次func(5,6),当然得出结果22了.

锡林郭勒盟13624949498: 关于简单的C语言子程序调用和存储数据问题 -
宫养苯甲: 对于简单的程序可以用switch来做,不要用1,2,3,4来代表,会很让人费解,还是用自然语义的“+”“-”“*”“/”等来表示比较好 比如这样 int add(int a, int b) { return a + b; }/* 减乘除的函数就没写了,可以自己补上 */ int main(int argc, char ...

锡林郭勒盟13624949498: c语言调用问题 -
宫养苯甲: main() //主函数 { char s[80]="baawrskjghzlicda", p[50]; //定义两个字符数组s和p,同时给字符数组s[80]赋值 为baawrskjghzlicda pri...

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