100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 东南大学蒙纳士553C++编程题

东南大学蒙纳士553C++编程题

时间:2024-01-14 08:25:26

相关推荐

东南大学蒙纳士553C++编程题

题目: 从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列。

奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换;再从偶数的字符开始,如此循环往复,直至交换完毕。

//从文件读入一个字符串,对其进行奇偶排序,使字母都按顺序排列。 //奇偶排序:每个奇数的字符开始,依次比较,若a[i-1]>a[i]或者a[i]>a[i+1]则交换;//再从偶数的字符开始,如此循环往复,直至交换完毕。 #include <iostream>#include <string>#include <fstream>using namespace std;void Swap(char &s1, char &s2) {char temp = s1;s1 = s2;s2 = temp;}int main(){ifstream is("string.txt");if(!is) {cerr << "File can not be opened!" << endl;exit(EXIT_FAILURE);}string str;bool flag1, flag2;is >> str;//从外部读入文件cout << "Before sorting:\n" << str << endl; while(flag1==false || flag2==false) { //只有当两轮遍历结束后flag1与flag2都为true才跳出循环flag1 = true;flag2 = true;for(int i = 1; i < str.length() - 1; i += 2) { //从奇数字符开始if(str[i] > str[i+1]) {Swap(str[i], str[i+1]);flag1 = false;}}for (int j = 0; j < str.length() - 1; j += 2) { //从偶数字符开始if (str[j] > str[j + 1]){Swap(str[j],str[j + 1]);flag2 = false;}}}cout << "\nAfter sorting:\n" << str << endl;return 0;}

读入的文件string.txt:

输入结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。