#include<stdio.h>
#include<string.h>
int main()
{
void sort(int *p,int n);
void printf(char *name[],int n);
void std(char *name[],int n);
char *str[][];
int n;
std(name,n);
sort(name,n);
printf(name,n);
}
void std(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%s",name[i]);
}
void sort(char *name[],int n)
{
char *temp;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(name[i],name[j])>0)
{
temp=name[i];
name[i]=name[j];
name[j]=temp;
}
}
void printf(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
不知道怎么改了、、、
解决方案
20
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
void sort(char *name[],int n);
void myprintf(char *name[],int n);
void std(char *name[],int n);
char *name[32];
int n;
scanf("%d", &n);
std(name,n);
sort(name,n);
myprintf(name,n);
}
void std(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
{
name[i] = (char *)malloc(32);
scanf("%s",name[i]);
}
}
void sort(char *name[],int n)
{
char *temp;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(name[i],name[j])>0)
{
temp=name[i];
name[i]=name[j];
name[j]=temp;
}
}
void myprintf(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
20
先输入一个数,指定一共有几个字符串
然后依次输入要排序的字符串(指针数组的每个指针都要malloc空间才行)
然后依次输入要排序的字符串(指针数组的每个指针都要malloc空间才行)
10
#include<stdio.h>
#include<string.h>
void mysort(int *p,int n);
void myprintf(char *name[],int n);
void myscanf(char *name[],int n);
int main()
{
char *str[][];
int n;
myscanf(name,n);
mysort(name,n);
myprintf(name,n);
}
void myscanf(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
scanf("%s",name[i]);
}
void mysort(char *name[],int n)
{
char *temp;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(name[i],name[j])>0)
{
temp=name[i];
name[i]=name[j];
name[j]=temp;
}
}
void myprintf(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%s\n",name[i]);
}
10

这样子不行?不知道题主究竟想达到什么效果