C语言二维数组,冒泡排列问题,求教!

有一字符数组n[][10]={“book”,”well”,“hello”,“yellow”,”cell”,“swap”,“atomic”,“thanks”,“love”,... 有一字符数组n[ ][10] ={“book”, ”well”, “hello”, “yellow”,”cell”,“swap”, “atomic”, “thanks”,“love”, “detail”},利用冒泡排序然后再进行从小到大排序。

void bubbleSort(char arr[6][10],int n)

{

int i,j,temp;

for (i = 1; i < n; i++)

{

for (j = 0; j < n - i; j++)

{

if(arr[i][j] < arr[i][j+1])

{

temp = arr[i][j];

arr[i][j]= arr[i][j+1];

arr[i][j+1] = temp;

}

}

}

}

int main(int argc, char * argv[]) {

printf("\n\n冒泡排序");

char n[][10] = {"book","well","hello","yellow","cell","swap","atomic","thanks","love","detail"};

bubbleSort(n,10);

for (int i = 0; i < 10; i++)

{

printf("%s ",n);

}

return 0;
乱写一通,根本打印不出来,新手求大神指点!
展开
 我来答
shanhuhai0322
2015-07-30 · 超过36用户采纳过TA的回答
知道答主
回答量:47
采纳率:100%
帮助的人:29.6万
展开全部
#include<stdio.h>
#include<iostream>
int N = 10;
int Intcompare(char *a, char *b) 
{
 int i;
 for (i = 0; i < N; i++)
 {
  if (*(a+i) == 0) return 0;
  if (*(a+i) > *(b+i))
  {
   return 1;
  }
  else
   return 0;
 }
 return 0;
}
void charcopy(char *a, char *b)
{
 int i ;
 for (i = 0; i < 10; i++) *(a + i) = 0;
 for (i = 0; i < 10; i++)
 {
  if (*(b + i) == 0) return;
  *(a + i) = *(b + i);
 }
 return;
}
void bubbleSort(char (*arr)[10], int n) //n是字符串的个数

 int i, j; 
 char change[10];
 for (i = 1; i <= n; i++)    
 { 
  for (j = 0; j < n - i; j++)       
  {
   if (Intcompare(&arr[j][0] ,&arr[j+1][0])==1)            
   { 
    charcopy(change, &arr[j][0]);
    charcopy(&arr[j][0], &arr[j + 1][0]);
    charcopy(&arr[j + 1][0], change);
   } 
  } 
 } 
}
int main(int argc, char * argv[])
{
 printf("\n冒泡排序 \n");
 char n[10][10] = { "book", "well", "hello", "yellow", "cell", "swap", "atomic", "thanks", "love", "detail" };
 bubbleSort(n, 10);
 for (int i = 0; i < 10; i++)
 {
  printf("%s \n ", n[i]);
 }
 system("pause");
 return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式