Code Bye

c语 将若干字符串按字母顺序小到大输出

#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空间才行)

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


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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c语 将若干字符串按字母顺序小到大输出