ncstoj 1354順位表
説明
読んnは学生の名前、学校、成果、出力最高得点と最低は学生の名前と学生番号を獲得します。
入力
各テスト入力は、試験番号(0 <N <100)最初の行を含むN学生表す
出力を
各テストケース出力2の場合、1行目は、最高の学生の名前と学生番号をスコアで、二行目は、学生の名前と学生番号を最低得点され、文字列の間にスペースがあります。
サンプル入力
3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95
サンプル出力
Mike CS991301
Joe Math990112
構造エントリのタイトル
C ++書かれた1:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 105;
typedef struct STU {
string name;
string num;
int score;
bool operator<(const STU &S) const { return score < S.score; }
} STU;
STU s[maxn];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> s[i].name >> s[i].num >> s[i].score;
sort(s, s + n);
cout << s[n - 1].name << " " << s[n - 1].num << endl;
cout << s[0].name << " " << s[0].num << endl;
return 0;
}
2 CおよびC ++書き言葉比較:
1598ワードソートncstoj
説明
入力文字列の長いリスト、前記出力語辞書式順序。
入力
K-語、1≤K≤20によって英語入力文字列。
小文字によってそれぞれの文字が構成することを確認し、各単語は一度だけ表示されます。
出力
各二つの単語間の辞書順に係る単語の全ての出力は、空白で区切られた
サンプル入力
tom likes apples
サンプル出力
apples likes tom
STLセット:コレクションを使用して再して並べ替え
、学生の問題をコンパイルし、このビデオを見て3分50秒:プログラミング環境の構成とOJ導入
#include <bits/stdc++.h>
using namespace std;
set<string> s;
int main() {
int n;
string str;
while (cin >> str) {
s.insert(str);
}
for (auto elem : s)
cout << elem << " ";
return 0;
}
書き込みC言語の練習に学校の女の子(彼女はもっと複雑な入力プロセスを書きました)
4著:ソート+ベクトル
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<string> v;
string str;
while (cin >> str) {
v.push_back(str);
}
sort(v.begin(), v.end());
for (auto x : v) {
cout << x << " ";
}
puts("");
return 0;
}
1599分子量ncstoj
説明
高校生が自分の問題のほとんど混乱1のいくつかに対処することを決定した後、暁明は大学でプログラミングを学んだ:化学物質の相対分子量を計算します。
入力
第一の入力線は、正の整数n、テストデータのN個のセットです。
次のn行の各式を表す文字列を入力し、式は大文字と数字のみを含んでいます。
注:以下のように、入力データは、三つの要素、三つの要素の相対原子質量が含ま:H(1)、C( 12)、O(16)。
出力
各入出力相対分子質量のために。
サンプル入力
2
H2O
CH4
サンプル出力
18
16
この質問は何を行う方法、アルゴリズムの多くである
ハッシュテーブルunordered_map(またはマップ)による要素の参照テーブルを作成します
#include <iostream>
#include <unordered_map>
using namespace std;
unordered_map<char, int> m1;
bool isDigit(char c) { return c <= '9' && c >= '1'; }
int main() {
// freopen("/Users/zhbink/Documents/C++/C++/in.txt", "r", stdin);
m1['H'] = 1;
m1['C'] = 12;
m1['O'] = 16;
int T;
cin >> T;
while (T--) {
string str;
cin >> str;
int ans = 0;
char last_alp = 'a';
for (int i = 0; i < str.length(); i++) {
char c = str[i];
if (isDigit(c))
ans += m1[last_alp] * (c - '0');
else
ans += m1[last_alp];
last_alp = c;
}
if (!isDigit(str.back()))
ans += m1[last_alp];
cout << ans << endl;
}
return 0;
}
学校の兄は、アルゴリズムIIを書きました:
#include<iostream>
using namespace std;
int main(){
int n,num,sum;
string a;
cin>>n;
while(n--){
sum=0;
cin>>a;
for(int i=0;i<a.length();i++){
if(a[i]=='H'){
num=1;
sum+=1;
}else if(a[i]=='O'){
num=16;
sum+=16;
}else if(a[i]=='C'){
num=12;
sum+=12;
}else if(a[i]<60){
sum+=num*(a[i]-'0'-1);
}
}
cout<<sum<<endl;
}
return 0;
}
:2のアルゴリズムのC言語のバージョン
を食べるために()改行をのgetcharに注意して