第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

循環(huán)當中會丟掉一個值

循環(huán)當中會丟掉一個值

C
肖科夫斯基 2018-01-02 17:06:47
#include<stdio.h>int main(){? int a,b,i;? scanf("%d/%d",&a,&b);? if(b!=0)??? for(i=2;i<=a&&i<=b;i++){????? if((a%i==0)&&(b%i==0))??????? a=a/i;??????? b=b/i;??????? i--;??? }? printf("%d/%d\n",a,b);? return 0;}我設計了一個這樣求最簡分式的程序。用gdb調試的時候發(fā)現值比較小的時候可以正常運行,但是值比較大之后,if語句在第二次開始就會把a=a/i這個操作給省略掉,求教為什么會這樣以及怎么改?
查看完整描述

2 回答

已采納
?
昵稱好難起757

TA貢獻17條經驗 獲得超0個贊

你if語句沒有加大括號,導致只執(zhí)行了a/=i就返回循環(huán)了,執(zhí)行完循環(huán)之后才執(zhí)行a/=i后面的語句。

查看完整回答
反對 回復 2018-01-02
?
昵稱好難起757

TA貢獻17條經驗 獲得超0個贊

改成這樣:
#include<stdio.h>
int main()
{
? int a,b,i;
? scanf("%d/%d",&a,&b);
? if(b!=0)
? for(i=2;i<=(a>b?b:a);i++)
{
? if((a%i==0)&&(b%i==0))
? {
a/=i;
b/=i;
i--;
? }
??? }
? printf("%d/%d\n",a,b);
}

查看完整回答
反對 回復 2018-01-02
  • 2 回答
  • 0 關注
  • 1369 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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