赵错啦,大括号居然能出有关问题,大家来帮小弟我看看咋回事
赵错啦,大括号居然能出问题,大家来帮我看看怎么回事
源码如下,请大家注意调用函数中的大括号,看看有什么问题,最好大家试着运行一下
#include "stdio.h"
#include "string.h"
int main()
{void sort(char **p);
int i;
char **p,*pstr[5],str[5][20];
for(i=0;i<5;i++)
pstr[i]=str[i];
printf("input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",pstr[i]);
p=pstr;
sort(p);
printf("\nstrings sorted :\n");
for(i=0;i<5;i++)
printf("%s\n",pstr[i]);
}
void sort(char**p)
{
int i,j;
char *temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(*(p+i),*(p+j))>0
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}
------解决方案--------------------
楼主,你if(strcmp(*(p+i),*(p+j))>0)少了个小括号
------解决方案--------------------
兄弟,函数不是这样调用的
int main()
{void sort(char **p);
int main()
{
char **p = NULL;
sort(p);
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
哥啊,错误太多了,而且这程序格式写的太不规范了,容 易出理不该出的错误
------解决方案--------------------
正确书写:
#include "stdio.h"
#include "string.h"
void sort(char **p);
int main()
{
int i;
char **p,*pstr[5],str[5][20];
for(i=0;i<5;i++)
pstr[i]=str[i];
printf("input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",pstr[i]);
p=pstr;
sort(p);
printf("\nstrings sorted :\n");
for(i=0;i<5;i++)
printf("%s\n",pstr[i]);
}
void sort(char**p)
{
int i,j;
char *temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(*(p+i),*(p+j))>0)//少个括号
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}
------解决方案--------------------
源码如下,请大家注意调用函数中的大括号,看看有什么问题,最好大家试着运行一下
#include "stdio.h"
#include "string.h"
int main()
{void sort(char **p);
int i;
char **p,*pstr[5],str[5][20];
for(i=0;i<5;i++)
pstr[i]=str[i];
printf("input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",pstr[i]);
p=pstr;
sort(p);
printf("\nstrings sorted :\n");
for(i=0;i<5;i++)
printf("%s\n",pstr[i]);
}
void sort(char**p)
{
int i,j;
char *temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(*(p+i),*(p+j))>0
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}
------解决方案--------------------
楼主,你if(strcmp(*(p+i),*(p+j))>0)少了个小括号
------解决方案--------------------
兄弟,函数不是这样调用的
int main()
{void sort(char **p);
int main()
{
char **p = NULL;
sort(p);
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
哥啊,错误太多了,而且这程序格式写的太不规范了,容 易出理不该出的错误
------解决方案--------------------
正确书写:
#include "stdio.h"
#include "string.h"
void sort(char **p);
int main()
{
int i;
char **p,*pstr[5],str[5][20];
for(i=0;i<5;i++)
pstr[i]=str[i];
printf("input 5 strings:\n");
for(i=0;i<5;i++)
scanf("%s",pstr[i]);
p=pstr;
sort(p);
printf("\nstrings sorted :\n");
for(i=0;i<5;i++)
printf("%s\n",pstr[i]);
}
void sort(char**p)
{
int i,j;
char *temp;
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if(strcmp(*(p+i),*(p+j))>0)//少个括号
{
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
}
------解决方案--------------------