1 #include"iostream" 2 #include"windows.h" 3 #include"string" 4 #include"map" 5 using namespace std; 6 int main() 7 { 8 int check = 1; 9 while (check == 1) 10 { 11 int people = 0; 12 double ave = 0.0; 13 int max = 0; 14 map<int, string>mapStudent; 15 pair< std::map< int, string >::iterator, bool > ret; 16 cout << "请输入黄金点游戏的范围:" << endl; 17 cin >> max; 18 cout << "请输入游戏人数:" << endl; 19 cin >> people; 20 for (int i = 0; i < people; i++) 21 { 22 23 int ch; 24 string name; 25 cout << "黄金点的范围:" << max << endl << "请输入你的点数:" << endl; 26 cin >> ch; 27 if (ch>max || ch<0) 28 { 29 cout << "输入的数范围错误,请重新输入:" << endl; 30 cout << "黄金点的范围:" << max << endl << "请输入你的点数:" << endl; 31 cin >> ch; 32 } 33 cout << "请输入你的姓名:" << endl; 34 cin >> name; 35 ret = mapStudent.insert(pair<int, string>(ch, name)); 36 if (ret.second){ 37 std::cout << "输入成功:" << std::endl; 38 Sleep(500); 39 system("cls"); 40 } 41 else{ 42 std::cout << "输入的数重复,请重新输入" << std::endl; 43 people++; 44 Sleep(500); 45 system("cls"); 46 } 47 } 48 map<int, string>::iterator iter; 49 for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++) 50 { 51 ave += iter->first; 52 } 53 ave = (ave / 3.0)*0.618; 54 cout << "\t黄金点数" << " " << "\t差值(输入的数与平均数的差)" << " " << "\t姓名" << endl; 55 for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++) 56 { 57 double n = 0.0; 58 n = abs(iter->first - ave); 59 cout << "\t" << ave << " " << "\t\t" << n << " " << "\t\t\t\t" << iter->second << endl; 60 } 61 cout << "继续游戏请按1,退出游戏请按其他键!" << endl; 62 cin >> check; 63 } 64 system("pause"); 65 return 0; 66 }
原文:http://www.cnblogs.com/cool125/p/7642982.html