在这段代码中,在对high【】【】,low【】【】的每一行进行字符串排序时,我想用指针作形参,发现函数参数传递过程中出现错误,我捋不清了,求求帮忙改一下sort的函数声明,和函数调用
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void sort(char *str,int len);
void get_score(int b[],int flag,char a[],int len);
int main()
{
int n,i;
scanf("%d",&n);
int b[n];
getchar();
char str[n][50],tmp[50];
for(i=0;i<n;i++){
gets(str[i]);
b[i]=-1;
str[i][strlen(str[i])]='\0';
if(isdigit(str[i][strlen(str[i])-1])==0);
else{
strcpy(tmp,str[i]);
get_score(b,i,tmp,strlen(str[i]));
}
}
int min=100,max=0;
for(int k=0;k<n;k++){
if(max<b[k])
max=b[k];
if((min>b[k])&&(b[k]>=0))
min=b[k];
}
char high[10][50];
char low[10][50];
int num_high=0,num_low=0;
for(int k=0;k<n;k++){
if(b[k]==max)
strcpy(high[num_high++],str[k]);
if(min==b[k])
strcpy(low[num_low++],str[k]);
}
if(min==max){
printf("%s\n",low);
return 0;
}
sort(high[0],num_high);
sort(low[0],num_low);
printf("%s\n",high[0]);
printf("%s\n",low[num_low-1]);
return 0;
}
void get_score(int b[],int flag,char a[],int len)
{
int num=0;
int j;
for(j=len;;j--){
if(isspace(a[j-1]))
break;
}
while(j<len){
num*=10;
num+=a[j++]-'0';
}
a[j]='\0';
b[flag]=num;
}
void sort(char *str,int len)
{
char ttmp[50];
for(int m=0;m<len-1;m++){
for(int e=0;e<len-1-m;e++){
if(strcmp(*(str+e*50),*(str+(e+1)*50))>0){
strcpy(ttmp,*(str+e*50));
strcpy(*(str+e*50)],*(str+(e+1)*50));
strcpy(*(str+(e+1)*50),ttmp);
}
}
}//sort
}