看一下运行结果:
程序如下:
#include
using namespace std;
void mySort(char* a,int n);
int main()
{
int m ;
cout << "请输出字符串的长度:" << endl;
cin >> m;
char* t = new char[m];
cout << "请输入字符串:" << endl;
// while(cin >> *t){
for(int j=0;j cin>> t[j]; } mySort(t,m); cout<<"冒泡降序排序:"< for (size_t i = 0 ; i != m ; i ++){ cout << t[i]; } cout < return 0; } void mySort(char* a,int n) { for( int i = 0; i < n; i ++ ) // 遍历数组 { for( int j = 0; j < n - i - 1; j ++ ) // 遍历 { if( a[j] < a[j+1] ) { int temp = a[j]; // 交换两个数 a[j] = a[j+1]; a[j+1] = temp; } } } } 这个问题主要在于指针和数组操作方面,下来也需要多学习一下动态内存分配方面的,包括new运算符等方面。多看看这方面的blog 参考链接: http://www.cnblogs.com/zhoug2020/archive/2012/04/06/2434139.html http://blog.sina.com.cn/s/blog_76b0cde40100pdsc.html
while(cin>>*t)出错了,你没有为输入开辟内存,你读入的数据程序不知道存在哪里,所以会出错。
假设输入的字符不超过512个(包括字符串的结束字符)
必须先申请空间
t=new char[512];