图二是我在dev的输出结果,达到了预期
图一是头歌平台的测试,输出了4195742,请问是我哪步有问题吗
问题在定义 q 时没有初始化,将 int q = 0; 初始化下就好了。
scanf("%d\n", &n);
这里去掉\n,看看
scanf("%d", &n);
任务描述
编程计算两个正整数的最大公约数。其中求最大公约数的函数原型已经给出,请在主函数中编程调用函数,输出最大公约数。
程序的运行示例:
12,3↙
3
####函数原型说明
求最大公约数的函数原型如下:
int MaxCommonFactor( int a, int b);
返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。
参数:a,b是两个整型数
相关知识
本任务主要考察函数的调用方法。
####编程要求
根据提示,在右侧编辑器Begin-End处补充代码,编程计算两个正整数的最大公约数。
输入:输入格式:“%d,%d”
输出:输出格式:“%d\n”
测试说明
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
样例输入:
467,465
样例输出:
1
开始你的任务吧,祝你成功!
#include<stdio.h>
int MaxCommonFactor( int a, int b)
{
int c;
if(a<=0||b<=0)
return -1;
while(b!=0)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int main(void)
{
/*********Begin*********/
int a,b;
scanf("%d,%d",&a,&b);
printf("%d",MaxCommonFactor(a,b));
/*********End**********/
return 0;
}