首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

纠结啊这个程序编译是没有关问题,运行就是没结果!前辈来看看

2013-01-07 
纠结啊,这个程序编译是没问题,运行就是没结果!前辈来看看!#includestdio.hint main(){int a,bint gys(i

纠结啊,这个程序编译是没问题,运行就是没结果!前辈来看看!
#include<stdio.h>
int main()
{
int a,b;
int gys(int a,int b);
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a<1||a>1000000||b<1||b>1000000)
printf("enter error data\n");
else
printf("%s",gys(a,b));
}
return 0;
}
int gys(int a,int b)
{
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
a=b;
}
return a;
if(a%2!=0)
printf("NO\n");
else
printf("YES\n");
}
求两个数的最大公约数,并判断是否为偶数
[解决办法]
循环体写错了,从而循环条件成立不了。另外,return a的位置也过于提前,应先输出后return.
基于原程序的意图修改如下:


#include<stdio.h>
int main()
{
int a,b;
int gys(int a,int b);
while(scanf("%d %d",&a,&b)!=EOF)
{
if(a<1
[解决办法]
a>1000000
[解决办法]
b<1
[解决办法]
b>1000000)
printf("enter error data\n");
else
printf("%d",gys(a,b));
}
return 0;
}
int gys(int a,int b)
{
while(a!=b)
{
while (a>b)
a=a-b;
while (b > a)
b=b-a;
}
a = b;
if(a%2!=0)
printf("NO\n");
else
printf("YES\n");

return a;
}

[解决办法]


#include<stdio.h>
int main()
{
    int a,b;
    int gys(int a,int b);
    while(scanf("%d %d",&a,&b)!=EOF)
    {
        if(a<1
[解决办法]
a>1000000
[解决办法]
b<1
[解决办法]
b>1000000)
        printf("enter error data\n");
        else
        printf("%d",gys(a,b)); //这用%d
    }
       return 0;
}
int gys(int a,int b)
{
    while(a!=b)
    {
        if(a>b)
            a=a-b;
        else
            b=b-a;
    }
    a=b;   //拿出while循环
    
    if(a%2!=0)
        printf("NO\n");
    else
        printf("YES\n");

    return a;//最后再返回
}

热点排行
Bad Request.