#include<stdio.h>
int main()
{
int d,b;
for(b=0;b<43;b++)
{
for(d=0;d<45;d++)
{if(d>b)
continue;
if(b*2.3+d*1.9==82.3)
printf("beer=%d,drink=%d",b,d);}
}return 0;
}
飲料1.9元,啤酒2.3元,總共買的啤酒比飲料少,花了82.3元,但是運行程式什么都沒有顯示
uj5u.com熱心網友回復:
if(b*23+d*19==823)uj5u.com熱心網友回復:
數字不能有點嗎
uj5u.com熱心網友回復:
整型資料!
uj5u.com熱心網友回復:
數字當然能有點,只是比較有點的數字是否相等在這里不是如此比較。相信一般的教材上都有,可能你還沒留意到。uj5u.com熱心網友回復:
int main(){
int max_b = int(82.3/2.3);
int max_d = int(82.3/1.9);
int d,b;
for(b=0;b<=max_b;b++)
for(d=b+1;d<=max_d;d++)
if(b*2.3+d*1.9==82.3)
printf("beer=%d,drink=%d",b,d);
return 0;
}
uj5u.com熱心網友回復:
你定義的是整型變數,你可以把整型資料理解成整數,那么整數肯定是不帶小數點的,帶小數點的那個是浮點型就是float,教材上有你可以再看看;
程式之所有沒有輸出結果,是因為你寫的if(b*2.3+d*1.9==82.3)這個條件沒有達到,所有沒有輸出,你可以改成 <= 這個條件看看程式是否有輸出;
還有
if(d>b)這個陳述句按你的意思就不能用continue了 ,應該用break,意思是從結束當前回圈;
continue;
uj5u.com熱心網友回復:
浮點數的比較,在C++里可能存在誤差,自己添加一個函式判定吧
比如
[code=cbool EqualXy(double Chd_A, double Chd_B)
{
double Chd_X = Chd_A - Chd_B;
if( ( Chd_X < 0.000001 )&&( Chd_X > -0.000001 ) )
{
return true;
}
else
{
return false;
}
}][/code]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/83420.html
標籤:基礎類
