我用c++编程软件编写c语言,编了一道求约数的题目,编译可以但是结果总是不正确,得出的正确的答案

我用c++编程软件编写c语言,编了一道求约数的题目,编译没有问题,但是结果总是不能得出的正确的答案。我写的程序应该没有问题,在别人机子是运行可以得到正确的答案,而在我的电脑是却不可以,难道是硬件问题?写的程序如下
#include<stdio.h>
#include<stdlib.h>
int main()
{int p ,r,n,m,temp;
printf("请输入两个正整数n,m :");
scanf ("%d,%d",&n,&m);
if (n<m)
{ temp=n;
n=m;
m=temp;
}
p=n*m;
while (m!=0)
{r=n%m;
n=m;
m=r;

}

printf ("它们的最大公约数为 :%d\n",n);
printf ("它们的最小公约数为:%d\n",p/n);

system("pause");

} 运行结果是 : 它们的最大公约数为:3
它们的最大公约数为: -234694388
显然结果错误,但是我找不出哪里出问题啦..请高手指点..
我输入的是12和8,用的是DEV C++软件,别人机子上面用同样的软件运行结果正确 ,而我的却错啦。。。

你的错误是 scanf ("%d,%d",&n,&m);

应该改为scanf ("%d%d",&n,&m); 就是去掉两个%d中间的逗号

我自己写的一个
#include<stdio.h>
#include<stdlib.h>
int main()
{int p ,r,n,m,temp;
printf("请输入两个正整数n,m :");
scanf ("%d%d",&n,&m);

while(n!=m)
{
if(n>m)
{
n=n-m;
}
else
{
m=m-n;
}
}

printf ("它们的最大公约数为 :%d\n",m);

system("pause");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-31
输入的数据是不是太大了,造成了溢出,可以尝试改用long型试试,这个算法我忘记了,,所以不知道你这个算法对不。

C语言——求最大公约数和最小公倍数的简单程序
本文讲解一下利用C语言求两个数字的最大公约数以及最小公倍数的方法。首先打开编译器,这里用的是VC++6.0,然后新建工程,选择下方的控制台应用程序,也就是“win32 console application”。然后新建一个文件,选择“C++ source file”,然后输入文件名,点击确定。接着输入如图所示的代码,注意检查看...

c语言求最大公约数
在C语言编程中,要实现求两个正整数的最大公约数(GCD),可以通过简单的算法来完成。首先,创建一个C源程序,比如在Visual C++6.0环境下操作。程序的核心步骤如下:1. 从用户处获取两个正整数a和b的输入值。为了简化操作,选择其中较小的数n,将其存储起来。2. 从n开始,逐次减小1,检查这个数...

用C语言求最大公约数。
结论:在C语言中,我们可以通过简单的算法来计算两个正整数的最大公约数。以下是实现步骤:首先,创建一个C源程序,比如使用Visual C++ 6.0编译器。在程序中,你需要让用户输入两个正整数a和b。为了效率,先确定这两个数中的较小值,并将其存储在变量n中。接着,从n开始,逐次减小1,检查这个减...

用C++语言编写程序求出555555的约数中最大的三位数是多少。
int i,m;for(i=99;i!=999;i++){if(!(555555\/i))m=i;} cout << "约数中最大的三位数为" << m << endl;return 0;}

如何用C++编程求两个自然数的最大公约数?
先用辗转相除法求出它们的最大公约数gcd 因为最小公倍数lcm满足:lcm * gcd = i * j,所以可以求出lcm 再判断lcm是否正好是gcd的120倍即可 C++代码和运行结果如下:可见成功得到符合条件的两组数:(115, 552) 和 (232, 435),望采纳~附源码:include <iostream> using namespace std;int ...

c++编写一个求两个整数最大公约数和最小公倍数的函数
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:include<stdio.h> include<math.h> int fun_gy(int,int); \/\/声明最大公约数函数 int fun_gb(int,int); \/\/声明最小公倍数函数 main(){ int a,b,gy,gb;printf("输入两...

如何用C语言实现求两个正整数的最大公约数?
首先,打开你的C语言编程环境,比如Visual C++6.0,准备编写一段奇妙的代码。在程序的初始阶段,敲击键盘,输入两个待求公约数的正整数a和b。<\/ 为了简化计算,我们需要找到这两个数中的较小值,将其存储在变量n中,这样可以提高效率。接下来,从这个较小数n开始,逐次减1,寻找能同时整除a和b的...

C语言程序设计如何求最大公约数?
具体操作步骤如下:一、新建一个C语言源程序,使用Visual C++6.0的软件。二、从键盘中输入两个正整数a和b。代码:printf("please input two number:\\n");int a,b;scanf("%d%d",&a,&b)。三、取两个数a,b中的较小值存放到变量n中。代码:int n=a;if (n>b)n=b。四、从两个数a...

用C语言求最大公约数。
1、新建一个C语言源程序,这里使用Visual C++6.0的软件:2、从键盘中输入两个正整数a和b。取两个数a,b中的较小值存放到变量n中。从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数,第一个找到的整数即整数a和b的最大公约数,最后将找到的结果输出即可完成程序的编写:3、对源...

一道C++题目,找出范围内约数最多的数,求解决代码
include<iostream>#include<vector>using namespace std;int main(){ int F, T; cin >> F >> T; vector<int> vecTmp, vecResult; int nResult = 0; if (T >= F) {for (int i = F; i <= T; i++){ vecTmp.clear(); for (int j = 1; j <= ...

相似回答