问题描述
- 为什么这段代码执行不了,我实在找不出错误,求各位大神搭救
-
#includeusing namespace std;
int main()
{
void bubble_sort(char *name[ ],int n);//函数声明,下同
void print(char *name[ ],int n);
char *dept[11]={"管理系","国际经贸系","计算机系","电子系","数码媒体系","外语系","软件工程系","网络技术系","游戏系","基础部","思政部"};
bubble_sort(dept,11);//调用冒泡排序函数
print(dept,11);//调用输出多个字符串函数
return 0;}
void bubble_sort(char *name[ ],int n)//冒泡排序函数
{
char k;
for(int i=n-1;i>=0;i--)
{
for(int j=0;j
{
if(strcmp(name[j],name[j+1])>0)
{
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
}} } //程序代码段1
}
void print(char *name[ ],int n)//输出多个字符串函数
{
for(int i=0;i<n;i++)
cout<<*name[i]<<endl;
//程序代码段2
}
解决方案
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案二:
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案三:
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案四:
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案五:
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案六:
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
这块代码是什么意思?是想将两个字符串进行交换吗?最上面一句只是得到一个字符啊。
char *k = NULL;
f(strcmp(name[j],name[j+1])>0)
{
k = name[j];
name[j]=name[j+1];
name[j+1]=k;
}
这样才对吧。
解决方案七:
char k;
for(int i=n-1;i>=0;i--)
{
for(int j=0;j {
if(strcmp(name[j],name[j+1])>0)
{
k=*name[j];
*name[j]=*name[j+1];
*name[j+1]=k;
}
你的这一段 用一个char 接收一个char* 的问题
解决方案八:
你要交换的是字符串而不是字符,所以k是char * 表示才好。
解决方案九:
其他人说的也许是算法的问题,也许对哈。
如果你是编译不过的话或许你可以看看for(int j=0;j { 。我看你这个for循环是不是写错了,或许是我这边显示的不全吧。
若是编译错了不妨把错误结果贴出来