想编一个任意两个数字间的乘积?
main()
{
int a,b,c;
scanf("%d,%d",&a,&c);
b=a;
loop: if(b<=c)
{
b=b+1;
a=a*b;
goto loop;
}
else
printf("%d\n",a);
}
结果我输入了1,3运算结果是24!为什么会是这个结果?那里有错误呢??
由于是自学,没法找人问那里错那里对,所以谁能帮我看下?解读下谢谢拉!!!
----------------解决方案--------------------------------------------------------
是24啊!~b=2 a=2
b=3 a=6
b=4 a=24
----------------解决方案--------------------------------------------------------
1*2*3*4
你说等于多少.
loop: if(b<=c)
{
b=b+1;
a=a*b;
goto loop;
不要这样写循环语句
----------------解决方案--------------------------------------------------------
写程序的时候最好不要用goto语句,这个地方很容易出错!
----------------解决方案--------------------------------------------------------
但是loop: if(b<=c)
{
b=b+1;
a=a*b;
b<=c后就不在执行if下面的语句了呀!我输入1,3
也就是说1是a,3是c 一但b+到4就不执行了呀
应该就显示a的值了?
----------------解决方案--------------------------------------------------------
但是loop: if(b<=c)
{
b=b+1;
a=a*b;
b<=c后就不在执行if下面的语句了呀!我输入1,3
也就是说1是a,3是c 一但b+到4就不执行了呀
应该就显示a的值了?
楼主书还没看到循环语句吧?我刚学的时候也和你一样,用goto语句来代替循环,呵呵。
您大概忘了,您的b+=1是放到if中去的,也就是说,
一开始:b=a=1;
第一次执行if(b<=c)条件成立,执行if()里面的语句,b=2,a=2;
第二次执行if(b<=c)条件成立,执行if()里面的语句,b=3,a=6;
第三次执行if(b<=c)条件成立(此时b还等于3,还没执行里面的语句),执行if()里面的语句,b=4,a=24;
这时if(b<=c)条件才不成立,而a值已经是24了。这下您知道该怎么改了?
----------------解决方案--------------------------------------------------------
哦~~~!!明白了!!呵呵我刚学!就学了个scanf和frintf和int和main(),语句就看了个goto呵呵!谢谢soft_wind.
这样改吧
main()
{
int a,b,c;
scanf("%d,%d",&a,&c);
b=a;
loop: if(b<=c-1)
{
b=b+1;
a=a*b;
goto loop;
}
else
printf("%d\n",a);
}
谢谢大家的帮助!以后有问题还来请教大家啊!因为是自学!可能很多不懂的!望大家看见低级可笑的问题多多
见凉
----------------解决方案--------------------------------------------------------
是不是还可以这样改
main()
{
int a,b,c;
scanf("%d,%d",&a,&c);
b=a;
main()
{
int a,b,c;
scanf("%d,%d",&a,&c);
b=a;
loop: b=b+1
if(b<=c)
{
a=a*b;
goto loop;
}
else
printf("%d\n",a);
}
抱歉循环语句还只会这个!所以又用上了
----------------解决方案--------------------------------------------------------
不会!
----------------解决方案--------------------------------------------------------
两个主函数
main()
{
int a,b,c;
scanf("%d,%d",&a,&c);
b=a;
a=1;
loop:
if(b<=c)
a=a*b;
b=b+1;
goto loop;
printf("%d\n",a);
}
----------------解决方案--------------------------------------------------------