|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目要求:在主函数中输入10个等长字符串。用另一函数对其进行排序。
- #include<iostream>
- #include<string>
- using namespace std;
- void sort(string* a);
- int main()
- {
- string a[10];
- int i;
- cout << "初始化数组:";
- for (i = 0; i < 10; i++)
- cin >> a[i];
- string* p;
- p = &a[0];
- sort(p);
- return 0;
- }
- void sort(string* a)
- {
- int i, j;
- for (i = 0; i < 10; i++)
- {
- for (j = 0; j < 10-i; j++)
- {
- if (*(a + j) > * (a + j + 1))
- {
- string temp;
- temp = *(a + j + 1);
- *(a + j + 1) = *(a + j);
- *(a + j) = temp;
- }
- }
- }
- cout << "排序后得:";
- for (i = 0; i < 10; i++)
- cout << a[i] << " ";
- }
复制代码
上述是我写的代码,生成解决方法的时候没有报错,就是调试的时候,输入10个等长字符串以后,不显示重新排序后的结果
你看 这个行不行,我也是刚学c++,不太理解字符串的排序,不知道字符串的大小是怎么比较的,改了一下
- #include<iostream>
- #include<string>
- #include<stdlib.h>
- using namespace std;
- void sort(string* a);
- int main()
- {
- string a[10];
- int i;
- cout << "start new array:" << endl;
- for (i = 0; i < 10; i++)
- {
- cout << "a[" << i <<"]" << "is : ";
- cin >> a[i];
- }
- string* p;
- p = &a[0];
- sort(p);
- system("pause");
- return 0;
- }
- void sort(string* a)
- {
- int i, j;
- for (i = 0; i < 10; i++)
- {
- for (j = 0; j < 10-i; j++)
- {
- if (*(a + j) > * (a + j + 1))
- {
- //cout << *(a +j) << endl;
- string temp;
- temp = *(a + j + 1);
- *(a + j + 1) = *(a + j);
- *(a + j) = temp;
- }
- }
- }
- cout << "the result is:" << endl;
- for (i = 0; i < 10; i++)
- cout << "a[" << i << ']' << ":"<< a[i] << endl;
- }
复制代码
|
|