
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;
乱写一通,根本打印不出来,新手求大神指点! 展开
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;
乱写一通,根本打印不出来,新手求大神指点! 展开
1个回答
展开全部
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询