重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
互相反复调用,一方面是死循环,另一方面,系统资源堆栈会耗尽。
站在用户的角度思考问题,与客户深入沟通,找到灵石网站设计与灵石网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名、网站空间、企业邮箱。业务覆盖灵石地区。
我们可以加一个循环控制条件,让它只循环有限次结束。
#include stdio.h
int a=1,b=9;
int k=0,k_m=10; // 用k 记录次数,设最多次数为 k_m
int change();
int change1();
int main(){
change();
return 0;
}
int change(){
int i;
k++; if (k k_m) return 1; // 次数满了,结束程序
for(i=0;i2;i++) {
printf("a=%d\n",a);
change1();
}
return 0; // 正常返回0
}
int change1(){
int i1;
k++; if (k k_m) return 2; // 次数满了,结束程序
for(i1=0;i12;i1++) {
printf("b=%d\n",b);
change();
}
return 0; // 正常返回0
}
这就没问题了。
#includestdio.h
int func1(int m,int n)
{
int a;
while(n!=0)
{
a=m%n;
m=n;
n=a;
}
return(m); //这里应该返回m,如果返回a就一直是0
}
int func2(int x,int y)
{
return(x*y/func1(x,y));
}
int main()
{
int j,k;
printf("请输入两个整数:");
scanf("%d%d",j,k);
printf("两个数的最大公约数为%d,两个数的最小公倍数为%d",func1(j,k),func2(j,k));
return 0;
}
如果二者作用域没有交叉,那么可以把函数名定义为static。
或者在使用宏的地方,不要声明该函数。
否则,只能改掉其中一个名字。
推荐宏名用全大写字母。
函数名用全小写字母或者单词开头字母大写。 这样就不会冲突了。
而且根据名字 一眼就可以看出来是宏还是函数。
#include stdio.h
#include math.h
int xmin(int a[][5],int i,int j)
{int t,min;
for(i=0;i5;i++)
for(j=0;j5;j++)
if(a[0][0]=a[i][j])
{t=a[0][0];
a[0][0]=a[i][j];
a[i][j]=t;}
min=a[0][0];
return (min); }
int main()
{
int a[5][5],i,j,min;
for(i=0;i5;i++)
for(j=0;j5;j++)
scanf("%d",a[i][j]);
printf("min=%d",xmin(a,5,5));
return 0;
}
注意定义函数和声明函数的区别;
i,j已经作为参数传递进去了,重复定义了。
上面代码能运行。