上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
kaze0327 稍嫌羞澀的路人
註冊時間: 2016-08-22 文章: 1
25.19 果凍幣
|
發表於: 2016-8-22, PM 2:57 星期一 文章主題: 關於C++上計算法的疑問 |
|
|
各位大大好:
小弟買了一本c++程式設計的書正在學習中,但卻遇到了一個計算法上的疑問…怎樣都看不懂,還望請各位先進大大告訴小弟一下這個計算法的原理是什麼:
我先將程式碼po出來如下:
#include <iostream>
using namespace std;
int main()
{
int Mouth;
cout << "\n" <<"請輸入一個月份 : " << endl;
cin << Mouth ;
if (Mouth < 1 || Mouth >12)
cout << "您輸入的月份沒有意義" <<endl;
else
{
cout << "\n"<< Mouth << "月是";
switch ((Mouth%12)/3)
{
case 0;
cout << "冬季" <<endl;
break;
case 1;
cout << "春季" <<endl;
break;
case 2;
cout << "夏季" <<endl;
break;
case 3;
cout << "秋季" <<endl;
break;
default:
cout <<"程式有問題" << endl;
}
}
system("PAUSE");
return 0;
}
小弟不懂的地方在於中間的(Mouth%12)/3這個參數的計算法
看書上寫最後得到的數字由1~12的排法是:
0 0 1 1 1 2 2 2 3 3 3 0
可是若是沒有/3的話排法又是
1 2 3 4 5 6 7 8 9 10 11 0
還請各位大大解惑,在這先謝過了Orz。 |
|
回頂端 |
|
|
yag Site Admin
註冊時間: 2007-05-02 文章: 689
2704.11 果凍幣
|
發表於: 2016-8-22, PM 10:42 星期一 文章主題: Re: 關於C++上計算法的疑問 |
|
|
kaze0327 寫到: | 小弟不懂的地方在於中間的(Mouth%12)/3這個參數的計算法
看書上寫最後得到的數字由1~12的排法是:
0 0 1 1 1 2 2 2 3 3 3 0
可是若是沒有/3的話排法又是
1 2 3 4 5 6 7 8 9 10 11 0
還請各位大大解惑,在這先謝過了Orz。 |
看來你是不懂/3,c++中的除法是無條件捨去,只取整數位
1/3=0.33333,因為無條件捨去,所以就是0
2/3=0.66666,因為無條件捨去,所以還是0
3/3=1,所以會是1
這樣能理解嗎? |
|
回頂端 |
|
|
|