| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1613 人关注过本帖
标题:[求助]本人是初学+自学,写个极简单的程序不知道错在那里?
只看楼主 加入收藏
gx962144
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-29
收藏
 问题点数:0 回复次数:26 
[求助]本人是初学+自学,写个极简单的程序不知道错在那里?

想编一个任意两个数字间的乘积?

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!为什么会是这个结果?那里有错误呢??
由于是自学,没法找人问那里错那里对,所以谁能帮我看下?解读下谢谢拉!!!

搜索更多相关主题的帖子: 自学 初学 
2006-07-29 12:53
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 

是24啊!~b=2 a=2

b=3 a=6

b=4 a=24

2006-07-29 13:06
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

1*2*3*4
你说等于多少.
loop: if(b<=c)
{
b=b+1;
a=a*b;
goto loop;
不要这样写循环语句


倚天照海花无数,流水高山心自知。
2006-07-29 15:30
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1986
专家分:4
注 册:2006-7-1
收藏
得分:0 
写程序的时候最好不要用goto语句,这个地方很容易出错!

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-07-30 10:00
gx962144
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-29
收藏
得分:0 

但是loop: if(b<=c)
{
b=b+1;
a=a*b;
b<=c后就不在执行if下面的语句了呀!我输入1,3
也就是说1是a,3是c 一但b+到4就不执行了呀
应该就显示a的值了?

2006-07-30 18:24
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用gx962144在2006-7-30 18:24:47的发言:

但是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了。这下您知道该怎么改了?


对不礼貌的女生收钱......
2006-07-30 20:03
gx962144
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-29
收藏
得分:0 

哦~~~!!明白了!!呵呵我刚学!就学了个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);
}
谢谢大家的帮助!以后有问题还来请教大家啊!因为是自学!可能很多不懂的!望大家看见低级可笑的问题多多
见凉

2006-07-31 13:26
gx962144
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-7-29
收藏
得分:0 
是不是还可以这样改

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);
}
抱歉循环语句还只会这个!所以又用上了
2006-07-31 13:29
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
不会!

由于工作,N久都没来了!
2006-07-31 13:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
两个主函数

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);
}

倚天照海花无数,流水高山心自知。
2006-07-31 14:17
快速回复:[求助]本人是初学+自学,写个极简单的程序不知道错在那里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012265 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved