| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2910 人关注过本帖
标题:最大公约数,为什么不行?
只看楼主 加入收藏
thomas
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-2-24
收藏
得分:0 

你求的是最小公約數,而不是最大公約數,
#include "stdio.h"
main()
{
int a,b,c,d,t=0;
scanf("%d%d\n",&a,&b);
if(a>b) d=b;
else d=a;
for(c=d;c>1;c--)
{if (a%c==0&&b%c==0) {d=c;t=1;}}
if(t) printf("%d",d);
else printf("No answer");
}
根據你的例子改的,試試看吧,好久沒用c了。

2006-02-24 16:00
zqj417
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-2-16
收藏
得分:0 

#include<stdio.h>
main()
{
int i,n,min,num[20];
printf("n="); /*输入你要判定的数字个数*/
scanf("%d",&n);
for(i=0;i<=n-1;i++)
{
scanf("%d",&num[i]);/*输入你要判定的数字,每个输入后回车*/
printf("\n");
}
min=num[0];
for(i=0;i<=n-1;i++)

if(num[i]<=min)
min=num[i];


for(i=0;i<=n-1;)
{

if(num[i]%min==0)
{
i++;
continue;
}
else
{
min--;
i=0;
if(min==1)break;
}
}
printf(min==1?"\nno result":"\nthe number is %d",min);

}

2006-02-24 16:25
jidian998
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-2-24
收藏
得分:0 
紧急招聘网站程序员和网页设计制作

紧急招聘信息

1、网站程序员:

职位描述:
1、大专以上学历,累计2年以上工作经验;

2、精通AspAspX的程序开发人员;
3
、具有AccessSQL ServerOracle方面的开发经验;具有曾经参与或独立完 成大型网上商城、软件开发经验者优先;
4
、熟练操作脚本语言开发工具与数据库服务器;
5、工资待遇(月薪3000-5000元人民币),过适用期上三险。

联系人:孙小姐

联系电话:010-82894588-610

2、网页设计制作

职位描述:

1、大专以上学历,有2年以上网站美术制作经验

2、熟悉flash dreamwave photoshop

3、了解网站基本程序

4、设计感良好,具有较好的美术素养,能很好的理解并实现客户的要求,良好的沟通能力,独立工作能力较强,美术专业更佳。

5、工资待遇(月薪2000-4000人民币),过适用期上三险。

联系人:孙小姐

联系电话:010-82894588-610

2006-02-24 18:02
zhangjuan
Rank: 1
等 级:新手上路
帖 子:992
专家分:0
注 册:2006-1-19
收藏
得分:0 
to 21楼:你的观点错了
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d%d\n",&a,&b);
for(c=1;c<=a&&c<=b;c=c+1)
{if (a%c==0&&b%c==0) d=c;}
printf("%d",d);
}
这是楼主的程序,我刚一看这程序和你的想法一样,但是仔细看又不是,看到for(c=1;c<=a&&c<=b;c=c+1)
{if (a%c==0&&b%c==0) d=c;}
这条语句了吗?因为c至少要循环a,b中最小数-1次,所以d的值也是a,b的最大公约数了。

2006-02-24 18:20
thomas
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-2-24
收藏
得分:0 

#include "stdio.h"
main()
{
int a,b,c,d,t=0;
scanf("%d%d\n",&a,&b);
if(a>b) d=b;
else d=a;
for(c=d;(a%c!=0||b%c!=0)&&c!=1;c--);
if(c!=1)
printf("%d",c);
else
printf("No answer");
}

不好意思,不過樓主的程序始終得不到正確答案

我修改了一下我的程序試過,可以!

2006-02-27 16:35
学C的日子里
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-2-27
收藏
得分:0 
c++和c=c+1是等价的,和++c是不等的
2006-02-27 21:28
学C的日子里
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-2-27
收藏
得分:0 
以下是引用SunShining在2006-2-23 14:00:00的发言:
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int a,b,c,d;
scanf("%d %d",&a,&b);
for(c=1;c<=a&&c<=b;c=c+1)
if (a%c==0&&b%c==0) d=c;
printf("%d",d);
getch();
}


没问题 .顶9楼

是有问题的!前面用了" ",后面也用" ":前面用了逗号,后面也要用逗号!

2006-02-27 21:39
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

真晕死了,我在11楼早说了 scanf("%d%d\n",&a,&b); 里把\n 去掉就行了,这问题怎么还在讨论?


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-02-27 21:42
hyqzchh
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2006-2-28
收藏
得分:0 

alonefire你好!
我觉得你定得没有什么问题,我也运行过。但你在输入完两个整数后,还要跟上“\n
”两个字符回车即可。因为在scanf语句中你有“\n”,所以你要原样输入。
下面的程序只是在你的基础之上改了一点点:

/* Note:Your choice is C IDE */
main()
{
int a,b,c,d;
system("cls");
scanf("%d%d",&a,&b);
for(c=1;c<=a&&c<=b;c=c+1)
{
if (a%c==0&&b%c==0)
d=c;
}
printf("%d",d);
}
有什么问题,希望各位同仁指点。
hyqzchh@163.com

2006-02-28 15:01
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
程序肯定是错的.求最大公约数,它最大不会大于两数中小的那个的平方根啊

I am a programmer !
2006-03-06 06:55
快速回复:最大公约数,为什么不行?
数据加载中...
 
   



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

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