1、存储一组姓名,如Apple Tom Green Jack要求能排序、按字母顺序插入、并显示。
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { string s; vector<string> v; while(cin >> s) { v.push_back(s); if(getchar() == '\n') {//使用if是为了可以输入多组 sort(v.begin(), v.end()); for(int i = 0; i < v.size(); i++) { cout << v[i] << " "; } cout << endl; v.clear(); } } return 0; }
2、输入文件名及路径创建该文件,并把从键盘输入的内容保存到该文件,最后将该文件的路径、该文件名及文件中的内容输出到屏幕。
#include <iostream> #include <fstream> #include <algorithm> using namespace std; int main() { string name, path; cin >> name >> path; ofstream outfile; outfile.open(path + name); cout << "请输入要保存的内容:" << endl; string str; while (getline(cin, str)) { outfile << str << endl; } outfile.close(); fstream infile(path + name); cout << "Path: " << path << endl << "Name: " << name << endl; while(getline(infile, str)) { cout << str << endl; }//输出的第一行总有空格 不知为啥?? return 0; }
3、设计捕获两种不同类型的异常,一个是被0除,另一个是数组越界。
#include <iostream> #include <vector> #include <algorithm> using namespace std; double division(int a, int b) { if (b == 0) { throw "0不能做除数"; } return (a / b); } void err(int i, int n, int num, int a[]) { if(i > n) { throw "数组越界"; } else a[i] = num; } int main() { int a, b; cout << "输入被除数和除数:"; cin >> a >> b; try { cout << division(a, b) << endl; } catch(const char* msg) { cout << msg << endl; } cout << "输入数组长度:"; int n, num, i = 0; cin >> n; int arr[n]; while(cin >> num) { try { arr[i++] = num; if(i > n) throw "数组越界"; } catch(const char* e) { cout << e << endl; } } return 0; }
PS:这个捕获异常,我尽力了 不懂!!!!T_T T_T
4、设计一个程序能计算一个日期加上若干天后是什么日期。
输入: 输入四个整数分别表示年月日和累加的天数。
输出: 按yyyy-mm-dd的形式输出。
2008 2 3 100 2008-05-13
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int year, month, day, add; while(cin >> year >> month >> day >> add) { int nday; while(add > 0) { nday = day + add; if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { switch(month) { case 1 : add -= 31 - day; break; case 2 : add -= 29 - day; break; case 3 : add -= 31 - day; break; case 4 : add -= 30 - day; break; case 5 : add -= 31 - day; break; case 6 : add -= 30 - day; break; case 7 : add -= 31 - day; break; case 8 : add -= 31 - day; break; case 9 : add -= 30 - day; break; case 10 : add -= 31 - day; break; case 11 : add -= 30 - day; break; case 12 : add -= 31 - day; break; } if(add > 0) { month++; day = 0; } if(month > 12) { year++; month = 1; } } else { switch(month) { case 1 : add -= 31 - day; break; case 2 : add -= 28 - day; break; case 3 : add -= 31 - day; break; case 4 : add -= 30 - day; break; case 5 : add -= 31 - day; break; case 6 : add -= 30 - day; break; case 7 : add -= 31 - day; break; case 8 : add -= 31 - day; break; case 9 : add -= 30 - day; break; case 10 : add -= 31 - day; break; case 11 : add -= 30 - day; break; case 12 : add -= 31 - day; break; } if(add > 0) { month++; day = 0; } if(month > 12) { year++; month = 1; } } } printf("%d-%02d-%02d\n", year, month, nday); } return 0; }