更多"以下函数fun用于求两个整数a和b的最大公约数。
fun(a,B)"的相关试题:
[简答题]编写两个函数,分别求两个整数的最大公约数和最小公倍数,然后用主函数调用这两个函数并输出结果,两个整数由键盘输入。
[填空题]两个正整数分别除以它们的最大公约数,得到2个商的和是18,能确定两个整数相差20.
(1)2个整数的最小公倍数是385; (2)2个整数的最大公约数是5.
[填空题]下列给定程序中函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
int fun(int a,int b)
int r,t:
if(a<b)
/*********found*********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/*********found*********/
return(a);
void main( )
int num1,hum2,a;
printf("Input num1 num2:");
scanf("%d%d",&num1,&num2);
printf("num1=%d num2=%d/n/n",num1,num2);
a=fun(num1,num2):
printf("The maximun common divisor is%d/n/n",a);
[简答题][说明]
下面的程序利用递归算法计算x和y的最大公约数。
[函数2.1]
main ( )
int x,y,k,t;
scanf(" % d% d" , &x, &y);
if(x>y) t=x;x=y; y=t;
(1) ;
while(k! =0)
y=x;
(2) ;
k=y%x;
prinff( "% d" ,x);
[函数2.2说明]
函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。
[函数2.2]
fun(ehar * str, char * substr)
int x,y,z;
(3) ;
for(x=0;str[ x] ! = ’/O’;x + + )
for(y=x,z=0;sabstr[z] = =str[y]; (4) ,y+ +)
if( (5) = =’/0’)
num + +;
break;
return(num);
[简答题]下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
intfun(int a,int b)
int r,t;
if(a<b)
/**********found***********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/*************found**********/
return(a);
void main( )
int num1,num2,a;
printf("Input num1 num2:");
scanf("%d%d",&num1,&num2);
printf("num1=%d num2=%&n/n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is%d/n/n",a);
[简答题]请编写函数fun,它的功能是:求任意两个正整数的最小公倍数和最大公约数,最小公倍数放在指针变量bei所指的变量中,最大公约数放在指针变量yue所指的变量中。
注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
void fun(int m,int n,int*bei,int *yue)
{int s=l,i;
if(m>n){s=m;m=n;n=S;}
for(i=2,s=1;i<m i++)
if((m%i=0)&&(n%i=0))
{
}
*yue=s;
*bei=S*m*n;
}
main( )
{int a,b,beishu,yueshu;
chscr( );
printf("please input a,b:");scanf("%d,%d,"&a,&b);
fun(a,b,&beishu,&yueshu);
printf("a,b beishu:%d/n",beishu);
printf("a,b yueshu:%d/n",Yueshu);
}
[填空题][函数2.1说明]
求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。
[函数2.1]
void func1(int m, int n)
r=m% n;
while(r<>0)
(1) ;
n=r;
(2) ;
return n;
[函数2.2说明]
判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。
[函数2.2]
void func2 ( )
int m, i, k, h=0,leap=1;
printf ( "/n" );
for ( m=101;m<=200;m++ )
(3) ;
for (i=2;i<=k; i++ )
if( (4) )
leap=0;break;
if ( leap )
printf ( "%-4d",m );
(5) ;
if ( h%10==0 )
printf ( "/n" );
leap=1;
printf ( "/n The total is %d", h );
[填空题][函数2.1说明]
求任意两个正整数的最大公约数的欧几里德算法。用辗转相除法求正整数m和n的最大公约数,并返回该公约数。
[函数2.1]
void func1(int m, int n) {
r=m% n;
while(r<>0) {
(1) ;
n=r;
(2) ;
}
return n;
}
[函数2.2说明]
判断101~200之间有多少个素数,并输出所有素数。用一个数分别去除2到sqrt (这个数),如果能被整除,则表明此数不是素数,反之是素数。
[函数2.2]
void func2 ( ) {
int m, i, k, h=0,leap=1;
printf ( "/n" );
for ( m=101;m<=200;m++ )
{ (3) ;
for (i=2;i<=k; i++ )
if( (4) )
{leap=0;break;}
if ( leap )
{printf ( "%-4d",m );
(5) ;
if ( h%10==0 )
printf ( "/n" );
}
leap=1;
}
printf ( "/n The total is %d", h );
}
[简答题]fun( )的功能是:求出两个非零正整数的最大公约数,并作为函数值返回。
例如,若给hum1和num2分别输入49和21,则输出的最大公约数为7;若给num1和num2分别输入27和81,则输出的最大公约数为27。
#include<stdio.h>
int fun(int a,int b)
int r,t;
if(a<b)
/**********found**********/
t=a;b=a;a=t;
r=a%b;
while(r!=0)
a=b;b=r;r=a%b;
/**********found**********/
return(a);
main( )
int num1,num2,a;
printf("Input num1 num2:");
scanf("%d%d",&num1,&num2);
printf("num1=%d num2=%d/n/n",num1,num2);
a=fun(num1,num2);
printf("The maximun common divisor is%d/n/n",a);
[填空题]
以下程序求一组整数的最大公约数。试完善程序以达到要求的功能。
#include
int gcd(int a,int b) i
{int r;
while(())
{r=a%b;a=b;(());}
return a;
}
void main( )
{int x,i,a[6]={12,56,48,32,16,24};
x= (()) ;
for(i=1;i<6;i++)
x=gcd((),a[i]);
printf("(%d,",a[O]);
for(i=1;i<5;i++)
printf("%d,",a[i]);
printf("%d)=;d/n",a[5],x);
}
[简答题][说明]
下面的程序利用递归算法计算x和y的最大公约数。
[函数2.1]
main ( )
{ int x,y,k,t;
scanf(" % d% d" , &x, &y);
if(x>y) { t=x;x=y; y=t;}
(1) ;
while(k! =0){
y=x;
(2) ;
k=y%x;
}
prinff( "% d" ,x); }
[函数2.2说明]
函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。
[函数2.2]
fun(ehar * str, char * substr)
{ int x,y,z;
(3) ;
for(x=0;str[ x] ! = ’/O’;x + + )
for(y=x,z=0;sabstr[z] = =str[y]; (4) ,y+ +)
if( (5) = =’/0’) {
num + +;
break;
}
return(num);
}
[填空题]输入两个整数,调用函数stu( )求两个数的立方和,返回主函数显示结果。
int stu(int a,int b)
return a*a+b*b;
main( )
int x,y;
scanf("%d,%d",&x,&y);
printf("%d",stu(x,y));
错误:______
改正:______
[填空题]下面程序的功能是用“辗转相除”求两个整数的最大公约数。请填空。
#include<stdio.h>
main( )
{int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)______
r=m%n:
while(r){m=n;n=r;r=m%/n};
printf(“%d/n",n);
}
[填空题]下面程序的功能是用“辗转相除”求两个整数的最大公约数。请填空。
#include<stdio.h>
main( )
int r,m,n;
scanf("%d%d",&m,&n);
if(m<n)______
r=m%n:
while(r)m=n;n=r;r=m%/n;
printf(“%d/n",n);
[简答题]下列给定程序中,函数fun( )的功能是;求出两个数的最大公约数,并作为函数值返回。例如,若给num1和num2输入49和21,则输出的最大公约数为7:若给num1和num2分别输入27和81,则输出最大公约数为27。
请改正函数fun( )中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
int fun(int a, int b)
{ int r,t;
if(a<b)
/******************found*****************/
{ t=a; b=a; a=t;}
r=a%b;
while(r!=0)
{ a=b; b=r; r=a%b;}
/******************found*****************/
return(a);
}
main( )
{ int num1, num2, a;
printf("Input num1 num2:"); scanf("%d %d",&num1, &num2);
printf("num1=%d num2=%d/n/n",num1, num2);
a=fun(num1, num2);
printf("The maximun common divisor is %d/n/n", a);
}
[填空题]下面函数用来求出两个整数之和,并通过形参传回两数相加之和值。请填空。
int add(int x,inty, 【15】 ,)
{ 【16】 =x + y;}