69,381
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <string.h>
void swap (char *a,char *b)
{
char *t;
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
}
void paixu(char **a)
{
int i,j;
i = j = 0;
for (; i < 9; i++)
for (; j < 9 - i; j++)
swap (a[i],a[i+1]);
}
void main ()
{
int i = 0;
char *a[10];
while (i++ < 10)
gets (a[i]);
paixu(a);
i = 0;
while (i++ < 10)
puts (a[i]);
}
#include <stdio.h>
#include <string.h>
void swap (char *a,char *b)
{
char *t,c[20]; /*要定义一个数组,用来作中间变量*/
t = c;
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
}
void paixu(char **a)
{
int i,j;
i = j = 0;
for (; i < 9; i++)
{
for (j=0; j < 9 - i; j++)
{
if ( strcmp(a[j],a[j+1]) > 0 ) /*要进行一下比较*/
swap (a[j],a[j+1]);
}
}
}
void main ()
{
int i = 0;
char *a[10],b[10][20]; /*你要定义一个二维数组,要不然a会是野指针*/
while (i < 10)
{
a[i] = b[i];
i++;
}
for ( i=0; i<10; i++ )
{
gets( a[i] );
}
paixu(a);
i = 0;
while (i < 10) /*i放到里面*/
{
puts (a[i]);
i++;
}
}
#include <stdio.h>
void swap (char a[20], char b[20])
{
char t[20];
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
}
void paixu(char(*a)[20])
{
int i,j;
i = j = 0;
for (; i < 9; i++)
for (; j < 9 - i; j++)
swap (a[i], a[i+1]);
}
void main ()
{
int i = 0;
const int NUM = 4;
char a[10][20];
while (i < 10)
gets (a[i++]);
paixu(a);
i = 0;
puts("=====================");
while (i < 10)
puts (a[i++]);
puts("=====================");
getchar();
}
/*
12
321
456
8789
5452
fef
feer
re
123
45678
=====================
321
12
456
8789
5452
fef
feer
re
123
45678
=====================
*/
void swap (char *a,char *b)
{
char *t;
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
}
其他代码不看,这个就有问题。。。strpcy是需要拷贝长度的。。。swap (char *a,char *b)
{
int length_a = strlen(a);
int length_b = strlen(b);
int length = length_a>length_b ? length_a : length_b;
char *t = malloc(length+1);
if(!t)
return;
memset(t, 0, length+1);
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
free(t);
}
void swap (char *a,char *b)
{
char *t; //==>代码有问题,t没有分配内存,另外长度问题需要考虑
strcpy (t,a);
strcpy (a,b);
strcpy (b,t);
}