C++数组排序问题,不知道哪错了

#include<iostream>#include<cstring>usingnamespacestd;voidsort(char*str1,char*str2);in... #include <iostream>
#include <cstring>
using namespace std;
void sort(char *str1, char *str2);
int main ()
{
char str1[20]="qwertyuiasdvvsdg";
char str2[20];
sort(str1,str2);
cout<<"str1:"<<str1<<endl<<"str2:"<<str2<<endl;
return 0;
}
void sort(char *str1, char *str2)
{
int i,j,n,digit_pos,digit;
char temp;
strcpy(str2,str1);
n=strlen(str2);
for(i=0;i<n-1;i++)
{
digit=str2[0];
digit_pos=0;
for(j=0;j<n-1-i;j++)
if(str2[j]>digit)
{
digit=str2[j];
digit_pos=j;
}
temp=digit;
str2[digit_pos]=str2[n-1-i];
str2[n-1-i]=temp;
}
}
展开
 我来答
theyear1991
2012-12-27 · TA获得超过173个赞
知道小有建树答主
回答量:119
采纳率:50%
帮助的人:143万
展开全部
楼主,你的程序只是for循环计数中有点问题,详情请参见下面的程序……
#include <iostream>
#include <cstring>
using namespace std;
void sort(char *str1, char *str2);
int main ()
{
char str1[20]="qwertyuiasdvvsdg";
char str2[20];
sort(str1,str2);
cout<<"str1:"<<str1<<endl<<"str2:"<<str2<<endl;
return 0;
}
void sort(char *str1, char *str2)
{
int i,j,n,digit_pos,digit;
char temp;
strcpy(str2,str1);
n=strlen(str2);
for(i=0;i<n;i++)
{
digit=str2[0];
digit_pos=0;
for(j=0;j<n-i;j++)
{
if(str2[j]>digit)
{
digit=str2[j];
digit_pos=j;
}
}
temp=digit;
str2[digit_pos]=str2[n-1-i];
str2[n-1-i]=temp;
}
}
我已测试通过哦,谢谢采纳。
陈宗权8d804
2012-12-27 · TA获得超过3766个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:959万
展开全部
算法有问题。帮你改了。
#include <iostream>
#include <cstring>
using namespace std;
void sort(char *str1, char *str2);
int main ()
{
char str1[20]="qwertyuiasdvvsdg";
char str2[20];
sort(str1,str2);
cout<<"str1:"<<str1<<endl<<"str2:"<<str2<<endl;
return 0;
}
void sort(char *str1, char *str2)
{
int i,j,n,/*digit_pos,*/digit;
//char temp;
strcpy(str2,str1);
n=strlen(str2);
for(i=0;i<n;i++)
{
digit=str2[i];
//digit_pos=0;
for(j=0;j<i;j++)
if(str2[j]>digit)
{
str2[i]=str2[j];
str2[j]=digit;
digit=str2[i];
//digit_pos=j;
}
//temp=digit;
//str2[digit_pos]=str2[n-1-i];
//str2[n-1-i]=temp;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式