要对几个字符串排序后输出。
两个程序,只是对数组的定义不同,第一个定义的是指针数组,是对的;第二个定义的是字符串数组,却是错的。指针数组的v[i]和字符串数组的v[i]不都是表示指向一个字符串的一级指针吗?二者有什么不同?为什么第二个是错的?
程序一:
#include
要对几个字符串排序后输出。
两个程序,只是对数组的定义不同,第一个定义的是指针数组,是对的;第二个定义的是字符串数组,却是错的。指针数组的v[i]和字符串数组的v[i]不都是表示指向一个字符串的一级指针吗?二者有什么不同?为什么第二个是错的?
程序一:
#include "stdio.h"
main()
{char *line[]={"C++","Fortran","Basic","Pascal","Foxbase"};
int n=5;
shellsort(line,n);
writeline(line,n);
}
shellsort(v,n)
char *v[];
int n;
{char *t;
int i,j;
for(i=0;i
{for(j=n-1;j>i;j--)
if(strcmp(v[j-1],v[j])>0)
{t=v[j];v[j]=v[j-1];v[j-1]=t;}
}
}
writeline(linp,n)
char *linp[];
int n;
{int i;
for(i=0;i
printf("%s\n",linp[i]);
}
程序二:
#include "stdio.h"
main()
{char line[][10]={"C++","Fortran","Basic","Pascal","Foxbase"};
int n=5;
shellsort(line,n);
writeline(line,n);
}
shellsort(v,n)
char v[][10];
int n;
{char *t;
int i,j;
for(i=0;i
{for(j=n-1;j>i;j--)
if(strcmp(v[j-1],v[j])>0)
{t=v[j];v[j]=v[j-1];v[j-1]=t;}
}
}
writeline(linp,n)
char linp[][10];
int n;
{int i;
for(i=0;i
printf("%s\n",linp[i]);
}
展开
全部