c和c++的一些训练题(4)(小学生比较国家面积)
2015-03-17 09:55
106 查看
问题的提出:四位分别来自中国、美国、俄罗斯、加拿大的小学生都以自己的国土面积大而骄傲不已,但是他们想知道到底谁的国土最大,谁的最小,他们的判断如下:
加拿大学生:加拿大最大,美国最小,俄罗斯第三。
美国学生:美国最大,加拿大最小,俄罗斯第二,中国第三。
中国学生:美国最小,加拿大第三。
他们互不相让,最后老师下定结论:对于上述四国面积的判断,他们每人只判断对了一个国家。对于老师的提示,四位小学生还是绞尽脑汁推断不出到底是谁的国土最大,谁的最小!现请编制程序告诉四位小学生正确顺序。
解答:这个问题我没思考出来,我想了两天,一直想建立一个类用来装国家和排名,始终没得到答案,后来看了答案,发现这竟然是个纯数字问题,答案挺简单,但是不太好想,贴出来供大家看看。
代码:
加拿大学生:加拿大最大,美国最小,俄罗斯第三。
美国学生:美国最大,加拿大最小,俄罗斯第二,中国第三。
中国学生:美国最小,加拿大第三。
他们互不相让,最后老师下定结论:对于上述四国面积的判断,他们每人只判断对了一个国家。对于老师的提示,四位小学生还是绞尽脑汁推断不出到底是谁的国土最大,谁的最小!现请编制程序告诉四位小学生正确顺序。
解答:这个问题我没思考出来,我想了两天,一直想建立一个类用来装国家和排名,始终没得到答案,后来看了答案,发现这竟然是个纯数字问题,答案挺简单,但是不太好想,贴出来供大家看看。
代码:
// test4_.cpp : 定义控制台应用程序的入口点。 //排序方法用的比较巧妙 //对齐方法用的也比较新setw(int n); //算法的复杂度较高,需要改进 #include "stdafx.h" #include <iostream> #include <iomanip> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string str[4]; int a,b,c,d;//a:America b:Russia C:China d:Canada for(a=1;a<=4;a++) { for(b=1;b<=4;b++) { if(a!=b) { for(c=1;c<=4;c++) { if(a!=c && b!=c) { d=10-a-b-c; if((a==4) + (d==1) + (b==2)==1 && (a==1) + (d==4) + (b==2) + (c==3)==1 && (a==4) + (d==3)==1) { //cout<<a<<b<<c<<d<<endl; str[a-1]="美国"; str[b-1]="俄罗斯"; str[c-1]="中国"; str[d-1]="加拿大"; cout<<left<<setw(15)<<"The first: "<<str[0]<<endl; cout<<left<<setw(15)<<"The second: "<<str[1]<<endl; cout<<left<<setw(15)<<"The third: "<<str[2]<<endl; cout<<left<<setw(15)<<"The last: "<<str[3]<<endl; } } } } } } system("pause"); return 0; }结果:
相关文章推荐
- C++面试中不怎么注意和比较怪的一些问题
- iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较
- C++ 11:比较诡异的一些语法
- C/C++一些比较有意思的算法
- c和c++的一些训练题(3)(8皇后游戏)
- C/C++比较容易搞混的一些写法
- iOS 里面 Swift与Objective-C混编,Swift与C++混编的一些比较
- Java学习记录(记录一部分Java和C++区别和Java里一些比较重要的概念)--稍后会转到新浪博客
- java与C++一些比较
- C++基础入门教程(七):一些比较特别的基础语法总结
- C++ 和 C# 语法的一些比较
- [C++]高效定义STL比较函数的一些建议
- C++中使用虚函数以及派生类来实现图形的派生后的一些图形的面积
- 一些背我遗忘又比较有用的C++语法知识
- Java和C++的一些比较
- 【c++ 一些比较细节的知识点】函数指针
- c++ stl容器的一些比较
- C++、java和matlab最近使用的一些比较
- OpenCV程序加速及C++中一些编程语法速度比较
- C++ 比较使用的一些知识