使用C++,有錯誤敬請指教
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
bool is_integer(string number){
return (number[0]=='-' || isdigit(number[0])) && all_of(number.begin()+1,number.end(), [](char c){
return (isdigit(c));
});
}
int main(){
vector<int> number;
string get_number;
while(true){
cout<<"請輸入整數:(輸入ENTER結束)"<<endl;
getline(cin,get_number);
if(get_number.empty()){
break;
}
if(is_integer(get_number)){
number.push_back(stoi(get_number));
} else cout<<"請輸入整數"<<endl;
}
if(!number.empty()){
auto it =max_element(number.begin(), number.end(),
[](int a, int b) { return a < b; });
cout<<"最大值是"<<*it;
} else cout<<"沒數字"<<endl;
return 0;
}
//
然後bool跟排序那兩段狗幹長的lambda看不懂也可以寫成這樣:
bool is_integer(string number){
return (number[0]=='-' || isdigit(number[0])) && all_of(number.begin()+1,number.end(), ::isdigit);
}
跟
sort(number.rbegin(),number.rend()); //從大排到小
cout<<"最大值是:"<<number[0];
比較短一點XD
輸出結果如下