快乐打码 2022-10-18 11:30 采纳率: 69%
浏览 11
已结题

请问我写的代码有什么问题为什么不对,可以帮我看看吗

任务:输出最大公约数(应用break语句)

输入正整数m和n,输出它们的最大公约数,要求在循环中应用break语句。

输入样例:
36 24
输出样例:
12
我写的代码
#include<stdio.h>
int main(){
int m,n,i,t;
scanf("%d%d",&m,&n);
if(m>n){
t=m;
m=n;
n=t;
}
for(i=n;i<n;i--){
if(m/i==0&&n/i==0){
printf("%d",i);
}
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-10-18 12:14
    关注

    for(i=n;i<n;i--){
    这啥循环条件啊?i=n,还要求i<n,这不一开始就不成立,循环不会执行的啊。
    另外也不是m/i和n/i,应该用求余啊
    修改如下:

    int main()
    {
        int m,n,i,t;
        scanf("%d%d",&m,&n);
        if(m>n){
            t=m;
            m=n;
            n=t;
        }
        for(i=n;i>=1;i--){
            if(m%i==0&&n%i==0){
                printf("%d",i);
                break;
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 已采纳回答 10月18日
  • 创建了问题 10月18日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部