| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1474 人关注过本帖
标题:这个程序为什么会出现这样的情况,求解!
取消只看楼主 加入收藏
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
这个程序为什么会出现这样的情况,求解!
小问题求解:
题目:写一函数,要求:输入两个正整数m和 n,求其最大公约数和最小公倍数。

#include <stdio.h>
#include <string.h>

int max(int ,int);

int main(int argc, char const *argv[])
{
    int m,n;
    printf("请输入两个数,中间用“ ”隔开\n");
    scanf("%d %d",&m,&n);

    int Max = max(m,n);
    printf("这两个数的最大公约数为:%d\n",Max );   
    printf("这两个数的最小公倍数为:%d\n",m * n / Max );
    return 0;
}


int max(int m ,int n){

    int count = m < n ? m : n;
    int maxValue;
    for (int i = 0; i < count; ++i)
    {
        if (m % i == 0 && n % i ==0)
        {
            maxValue = i;
        }
    }
    return maxValue;

}

结果如下:
TP-LINK-520E:Desktop tens04$ cc hoemWork1.c
TP-LINK-520E:Desktop tens04$ ./a.out
请输入两个整数,用逗号隔开:
5 10
这两个数的最大公约数是:0
Floating point exception: 8


求解答,求各位大大帮忙看看是怎么回事  我实在是学识不够 弄不出来了!
搜索更多相关主题的帖子: 最小公倍数 include return 公约数 正整数 
2016-07-04 11:10
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
收藏
得分:0 
回复 2楼 linlulu001
那么请问该怎么改呢?我自己理解的能力只能写成这样了!希望大大您能帮我解答下!
其次,i = 0;和i= 1影响的只是它循环的起始点啊!
2016-07-04 12:00
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
收藏
得分:0 
回复 5楼 平常心q
谢谢  我先试试啊!
2016-07-04 12:40
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
收藏
得分:0 
回复 7楼 linlulu001
子函数中的for循环即使i==0;也不会造成最后的结果显示为:浮点数异常错误啊!还是无法理解!希望大大您能说的通俗易懂一点,我还是菜鸟!
2016-07-04 17:26
低调低调
Rank: 3Rank: 3
来 自:四川省成都市
等 级:论坛游侠
威 望:1
帖 子:66
专家分:103
注 册:2016-6-23
收藏
得分:0 
回复 7楼 linlulu001
oo   我找到错误了  谢谢前辈的提醒
2016-07-04 19:05
快速回复:这个程序为什么会出现这样的情况,求解!
数据加载中...
 
   



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

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