C语循环问题

[复制链接]
查看11 | 回复3 | 2008-11-3 09:39:56 | 显示全部楼层 |阅读模式
问下啊
为什么这个程序运行不起来啊
#include "stdio.h"
main()
{int a,b,s,t1,t2;
t1=1;
t2=1;
scanf("%d%d",&a,&b);
if(a>b)
s=a;
else
s=b;
while(s>0)
{
if(a%s==0&&b%s==0)
{
a/=s;
b/=s;
t1*=s;
}
else
{s--;
t2=t1*a*b;
}
}
printf("big=%d,little=%d",t2,t1);
getch();
}

回复

使用道具 举报

千问 | 2008-11-3 09:39:56 | 显示全部楼层
你的循环体存在问题 还有那个好像是getchar() 吧 。 这里有个我以前写的同一个问题 你参考一下 希望对你有所帮助 谢谢 includevoid main() { int m,n,k,t,x,y; scanf("%d,%d",&m,&n); for(k=m0;k--) if(m%k==0&&n%k==0) { printf("max=%d\n",k); break; } x=m/k; y=n/k; t=x*y*k; printf("min=%d",t); } 不好意思 昨晚睡觉了 刚才把你的程序看了一下 #include "st...
回复

使用道具 举报

千问 | 2008-11-3 09:39:56 | 显示全部楼层
#include "stdio.h"main(){int a,b,s,t1,t2;t1=1;t2=1;scanf("%d %d",&a,&b);if(a>b)
s=a;else
s=b;while(s>0){
if(a%s==0&&b%s==0)
...
回复

使用道具 举报

千问 | 2008-11-3 09:39:56 | 显示全部楼层
你上面定义了s是a或b中的最大值,那么这个条件if(a%s==0&&b%s==0)就必定成立了,后面的那个else可以说根本就是执行不到,也就是说s的值除非是负数(输入a和b都是负数的情况下),否则while会永久执行(死循环)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行