#include “stdio.h”
int dyn(p3,rows,cols)/*动态输入字符串数组*/
int rows,cols;
char ***p3;
{
char **x;
int i;
x=(char**)malloc(rows*sizeof(char*));
for(i=0;i<rows;i++)
x[i]=(char*)malloc(cols*sizeof(char));
*p3=x;
}
main()
{
int r,c,i;
char **s2;
printf(“\ninput rows:\n”);
scanf(“%d”,&r);
printf(“input cols:\n”);
scanf(“%d”,&c);
printf(“\n**************************\n”);
dyn(&s2,r,c);
for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/
printf(“\n**************************\n”);
shellsort(s2,r);
}
shellsort(v,n)/*比较排序*/
char *v[];
int n;
{
char *t;
int i,j;
for(i=0;i<n-2;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;
}
for(i=0;i<n;i++)
puts(v[i]);
}
*为什么只能输入比r-1行的字符*/
TKS!
>> 本文固定链接: http://www.vcgood.com/archives/3263
>> 转载请注明: movewhere4c 2009年08月08日 于 C语言帝国 发表
for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/
改为
getchar();
for(i=0;i<r;i++)
{
gets(s2[i]);
}
因前一句scanf(“%d”,&c);留下一个’\n’在内存里
或者
for(i=0;i<r;i++)gets(s2[i]);/*为什么只能输入比r-1行的字符*/
改
for(i=0;i<r;i++)scanf(“%s”,s2[i]);/*为什么只能输入比r-1行的字符*/
程序有问题