| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:真心看不出出什么问题了,求大神帮忙看下。。。
只看楼主 加入收藏
clovey10000
Rank: 2
等 级:论坛游民
帖 子:30
专家分:39
注 册:2013-4-24
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:16 
真心看不出出什么问题了,求大神帮忙看下。。。
用函数求出两个数的最大公约数和最小公倍数。。。
#include"stdio.h"
int yue(int x,int y)
{
    int temp;
    while(x/y)
    {
        temp=y;
        y=x%y;
        x=temp;
    }
    return y;   
}
int bei(int x,int y)
{
    int temp,c=x*y;
    while(x/y)
    {
        temp=y;
        y=x%y;
        x=temp;
    }
    c=c/y;
    return c;
}
void main()
{ int a,b,c,d,temp;
  printf("请输入两个数:");
  scanf("%d%d",&a,&b);
  if(a<b)
  {temp=a;a=b;b=temp;}
  c=yue(a,b);
  d=bei(a,b);
  printf("最大公约数:%d\n最小公倍数:%d\n",c,d);
}
程序能运行,但是赋值给了a,b之后,再按回车键,就会出现系统错误。哪位大神能指点下迷津!先谢谢了。
搜索更多相关主题的帖子: yue 真心 最小公倍数 include return 
2013-05-22 16:55
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:3 
是你格式输入的地方有问题。

建议scanf("%d %d", &a, &b); 这样,当你输入3 4的时候,程序知道a是3,b是4.

你原先的scanf语句程序只知道你输入了一个,没有第二个,当你按回车的时候,程序会认为输入好了,其实第二个没有输入。

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 17:07
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
还有,那个stdio.h是系统库函数,用#include <stdio.h>的形式,双引号的默认是自己编写的文件。

当你写成#include "stdio.h"的时候,系统会先从目录文件里去找这个文件,找不到后才会去库文件里找。

这是程序规范问题,对你这个程序是没什么影响的,但建议你注意规范,有时候错误就出现在不规范的代码中,而那是极不容易找到的。



Edsger Dijkstra:算法+数据结构=程序
2013-05-22 17:11
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
还有,算法有问题,建议楼主先自己写两个数在草稿纸上运行运行。

那个while会死循环的的

坑啊。。。。。。。

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 17:20
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:3 
回复 2楼 雪狼MJ
没有必要的,默认就是空格间隔的!!
还威望2,不知道是不是真有货~~
2013-05-22 18:31
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:3 
#include"stdio.h"
 int yue(int x,int y)
 {
     int temp;
     while(x/y)
     {
         temp=y;
         y=x%y;
         x=temp;
     }
     return y;
 }
 int bei(int x,int y)
 {
     int temp,c=x*y;
     while(x/y)
     {
         temp=y;
         y=x%y;
         x=temp;
     }
     c=c/y;
     return c;
 }
 int main(void)
 { int a,b,c,d,temp;
   printf("请输入两个数:");
   scanf("%d%d",&a,&b);
   d=yue(a,b);
   c=bei(a,b);
   printf("最大公约数:%d\n最小公倍数:%d\n",c,d);
 }
你的大小比较出错!去掉比较也没错!
还有你的最小公倍数和最大公约数算法出错!自己看看吧!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-22 19:21
我叫沃恩
Rank: 12Rank: 12Rank: 12
来 自:Asia
等 级:贵宾
威 望:10
帖 子:1234
专家分:3865
注 册:2013-3-29
收藏
得分:0 
以下是引用YJ_Hao在2013-5-22 18:31:48的发言:

没有必要的,默认就是空格间隔的!!
还威望2,不知道是不是真有货~~
顺便说一句:不要轻易说别人的坏话!不要轻易否定别人的能力!

因为我是菜鸟,所以应该被骂! 细节+坚持=成功!
2013-05-22 19:23
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:0 
呵呵~

Edsger Dijkstra:算法+数据结构=程序
2013-05-22 19:52
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
回复 7楼 我叫沃恩
以后少说话就是了,哈哈!
2013-05-22 19:57
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:3 
别人帮你肯定思考过,不管对错都要表示谢意

Maybe
2013-05-22 21:49
快速回复:真心看不出出什么问题了,求大神帮忙看下。。。
数据加载中...
 
   



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

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