2016年4月17日 星期日

a004: 文文的求婚

#include <iostream>
using namespace std;

int main() {
int  s;
 while(cin >> s){
if(s%4==0 && s%100!=0)
cout << "閏年"<< endl;
else if(s%400==0)
cout << "閏年"<< endl;
else
cout << "平年"<< endl;
 }
 return 0;
}



cout和printf有什麼差別?
C++输入cout与输出cin 





錯誤的程式碼v0.1
#include <iostream>

using namespace std;



int main() {

string s;

 while(cin >> s){

if(s%4==0 && s%100!=0)

 cout << "閏年"<< endl;

else if(s%400==0)

 cout << "閏年"<< endl;

else

 cout << "平年"<< endl;

 }

 return 0;

}

非常直覺的拿範例程式來改寫了這樣的程式碼

得到了以下的結果
/2761251/code_2761251.cpp: In function ‘int main()’:
/2761251/code_2761251.cpp:7:5: error: no match for ‘operator%’ (operand types are ‘std::string {aka std::basic_string}’ and ‘int’)
 if(s%4==0 && s%100!=0)
     ^
/2761251/code_2761251.cpp:7:15: error: no match for ‘operator%’ (operand types are ‘std::string {aka std::basic_string}’ and ‘int’)
 if(s%4==0 && s%100!=0)
               ^
/2761251/code_2761251.cpp:9:10: error: no match for ‘operator%’ (operand types are ‘std::string {aka std::basic_string}’ and ‘int’)
 else if(s%400==0)
          ^


為甚麼會這樣呢?
因為輸入是string
改成int就可以了

不過這個時候有一個問題要思考了
string如何轉int?
[C&++] 字串整數轉換
上面這篇是呼叫現成的函數
如果自己寫的話,聽說要看一下 C++ Primer



C語言算術運算子
運算子
功能
範例
+
a+b
-
a-b
*
a*b
/
a/b
%
取餘數
a%b













沒有留言:

張貼留言

ADGuard