亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求m/n整除,但是程序有錯誤,希望大家幫忙看看哪有問題

求m/n整除,但是程序有錯誤,希望大家幫忙看看哪有問題

C++
慕斯709654 2022-12-22 16:12:49
#include<stdio.h>int gcd(int m,int n){if(m%n==0) printf("%d\n",n);elsegcd(n,m%n);} main(){int m,n;scanf("%d%d",&m,&n);printf("%d",gcd(n,m%n));}
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

不知道你想完成什么功能。
#include<stdio.h>

int gcd(int m,int n)
{
if(m%n==0) printf("%d\n",n);
else
gcd(n,m%n);
} //沒有返回值
main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d",gcd(n,m%n));//這里調用gcd函數輸出,而gcd函數根本沒有返回值。錯誤在這里。
}

查看完整回答
反對 回復 2022-12-25
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

怎么看起來有點像歐幾里得算法,是求最大公因數吧?
如果要求m/n是否整除,一個m%n就足夠了(m>=n)
求最大公因數的話,可以不遞歸,而且gcd(int m,int n)沒有返回值,還有這里printf("%d",gcd(n,m%n));應該是gcd(m,n);

查看完整回答
反對 回復 2022-12-25
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

大哥
利用輾轉相除法求最大公約數算法沒問題,問題在于你的函數沒返回值
#include<stdio.h>
int gcd(int m,int n)
{
if(m%n==0) 
printf("%d\n",n);
else
gcd(n ,m%n);
return 1;

main()
{
int m,n;
scanf("%d%d",&m,&n);
gcd(m,n);
}

 


查看完整回答
反對 回復 2022-12-25
  • 3 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號