#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
这样子不行?不知道题主究竟想达到什么效果