#include <iostream>
#include <string>
#include <iomanip>
int main ()
{
using namespace std;
char str[5][40],t;
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j++;)
{
cin>>str[i][j];
if((str[i][j]=getchar())=='\0')
break;
}
}
cout<<endl;
for(j=1;j<11;j++)
{
for(i=1;i<=10-j;i++)
{
if(str[i][j]>str[i][j+1])
{
t = str[i][j];
str[i][j] = str[i][j+1];
str[i][j+1] = t;
}
}
}
cout<<"the sorted nummbers:"<<endl;
for(i=1;i<5;i++)
for(j=1;j++;)
{
cout<<str[i][j];
}
}
第13的cin>>str[i][j];改成
str[i][j] = cin.get();
第14行改成
if(str[i][j] == '\n') //判断是否是回车
cin>>str[i][j];
if((str[i][j]=getchar())=='\0')
既然你把输入给了数组,为什么又用getchar()去给数组赋值,你这不是直接将输入丢弃了吗