这几行C语言代码我不知道哪里错了 大家帮我纠纠错
c语言吧
全部回复
仅看楼主
level 6
wangzilei1997 楼主
#include <stdio.h>
main ()
{
printf ("Press min and max:");
int n1,n2;
scanf ("%d%d",&n1,&n2);
printf ("%d:",GetZDGYS(n1,n2));
system ("pause");
}
int GetZDGYS (int a,int b)
{
int cha,min,max;
if (a>b){
max=a;min=b;
}else if (a==b){
return (a);
}else{
max=b;min=a;
}
cha=max-min;//差总是等于两个数的差的绝对值
while (min%cha!=0)
{
max=min;
min=cha;
printf ("min:%d,max:%d\n",min,max);
cha=max-min;
}
return (cha);
}
2012年07月15日 12点07分 1
level 6
wangzilei1997 楼主
当我输入21 27时 他就出错了
2012年07月15日 12点07分 2
问题是,你想实现什么功能.按你的程序运行21,27就会陷入死循环,自己调试下就明白了
2012年07月16日 02点07分
level 6
wangzilei1997 楼主
大家帮忙看看呀
2012年07月15日 13点07分 3
level 6
wangzilei1997 楼主
这是图片
2012年07月15日 14点07分 5
level 8
差要是总等于两个数的绝对值
你可以直接用math.h中的abs()函数啊,没必要加一个循环那么麻烦的
2012年07月15日 15点07分 7
level 7
A小于B输出是什么?
2012年07月15日 17点07分 8
level 7
不懂酱油
2012年07月15日 17点07分 9
level 6
[瀑布汗~]
2012年07月15日 18点07分 10
level 4
int GetZDGYS (int a,int b)函数没有声明,就使用,你也可以编译成功呀。牛人
2012年07月16日 01点07分 11
隐式声明
2012年07月16日 02点07分
@DSoong 怎么声明 教我一下
2012年07月16日 05点07分
@wangzilei1997 隐式声明不需要声明的,对于返回值为int类型的函数,C默认可以不用声明。不过不推荐这么做
2012年07月17日 13点07分
呵呵,受教了。。。
2012年07月29日 12点07分
level 4
函数在后面都不声明、、、、、
2012年07月17日 13点07分 12
怎么声明呀?
2012年07月17日 14点07分
回复@wangzilei1997 :[黑线]在前面不用声明,在后面mian后面就要声明,,,声明就是跟写函数差不多,int f(int a);
2012年07月29日 15点07分
@tufeididi007 哦 谢谢哈
2012年07月31日 13点07分
level 10
直接用abs就好了。
2012年07月17日 14点07分 13
有道理
2012年07月18日 00点07分
level 1
按f10进行调试,仔细找找
2012年07月17日 14点07分 14
level 6
这代码格式写的真的不好,不想再看下去了,看着你这乱成一堆的代码都头痛,缩进麻烦弄好点,这样不就看着更清晰吗?不人性化啊。
2012年07月18日 05点07分 15
呵呵, 幸幸苦苦敲了空格, 结果一发布就没有缩进了, 这个还真不是楼主的错。[背扭]
2012年07月31日 17点07分
level 11
是不是有个涵数没声明。?怎么老要验证码。
2012年07月18日 06点07分 16
level 11
是不是有个涵数没声明。?怎么老要验证码。
2012年07月18日 06点07分 17
level 5
莫非是辗转相除求公因数?程序不对啊…
2012年07月29日 15点07分 18
辗转相减
2012年07月30日 07点07分
level 5
唉,拜托,main调用在它后面的函数需要先声明……把main函数写在最后
2012年07月29日 15点07分 19
level 4
http://baike.baidu.com/view/1982943.htm这个地址是将辗转相减求最大公约数的
你这里我发现了两点错误:
1.scanf ("%d%d",&n1,&n2); 引号里的两个%d,你要么用空格隔开,要么用逗号隔开,相应的输入时候也用同样的符号隔开
2.你的算法不对,while里面相减之后你也要判断大小,然后交换。
附上我的函数:
int GetZDGYS (int a,int b)
{
int min=a,max=b;
while (1)
{
if (min>max)
{
max=max^min;
min=max^min;
max=max^min;
}else if(max==min)
return (max);
max=max-min;
printf ("min:%d,max:%d\n",min,max);
}
}
2012年07月30日 09点07分 20
嗯 谢谢哈
2012年07月31日 01点07分
1 2 尾页