帮我写一段C++的程序吧

来源:百度知道 编辑:UC知道 时间:2024/05/26 12:47:18
要求是对10个字符型数据排序,由大到小排列,要求使用指针。我自己写的程序总是运行不对,请高手帮我写吧
这个是我自己写的程序,也麻烦高手帮我找下错误吧。谢谢
//对10个字符型数据排序,由大到小排列,要求使用指针
#include<iostream.h>
#include<string.h>
void main()
{
char a[5];
char *p=a,*t;

cout<<"please input 10 numbers:"<<endl;
cin.getline(a,5);
for(int i=0;i<4;i++)
{
for(int j=0;j<i-4;j++)
{
if(*(p+j)<*(p+j+1))
{
t=(p+j+1);
(p+j+1)=(p+j);
(p+j)=t;
}

}
}
for(i=0;i<5;i++)
cout<<*(p+i)<<" ";

}

#include<iostream.h>
#include<string.h>
void main()
{
const int N=5;
char a[N];
char *p=a,t;

cout<<"please input "<<N<<" characters:"<<endl;
cin.getline(a,N+1);
for(int i=0;i<N;i++)
{
for(int j=0;j<N-i;j++)
{
if(*(p+j)<*(p+j+1))
{
t=*(p+j+1);
*(p+j+1)=*(p+j);
*(p+j)=t;
}
}
}
for(i=0;i<N;i++)
cout<<*(p+i)<<" ";
}
用cin.getline()进行输入,输入字符中间不能有空格

#include<iostream.h>
#include<string.h>
void main()
{
char a[5];
char *p=a,t;

cout<<"please input 10 numbers:"<<endl;
cin.getline(a,5);

for(int i=0;i<5;i++)
{
for(int j=0;j<=i;j++)
{
if(*(p+j)<*(p+j+1))
{
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t