望高手改正 指教?
程序代码:
#include<stdio.h>//把字符串按字典顺序输出 #include<stdlib.h>//不会报错就是交换失败 #include<string.h> struct stu { char name[50]; }*p; int shuru(struct stu *p);//输入字符串 void swap(struct stu *p,int i);//交换字符串 void shuchu(struct stu *p,int r);//输出字符串 int main(){ p=(struct stu*)calloc(4,sizeof(struct stu)); int r; r=shuru(p); printf("\n"); swap(p,r); shuchu(p,r); return 0; } int shuru(struct stu *p) {int i; for(i=0;i<3;)//输入三条字符串 { scanf("%s",p++); i++; } return i; } void swap(struct stu *p,int i) { int k,j; char m[50]={0}; for(j=0;j<i;j++) for(k=j;k<i;k++)//貌似交换错了啊 { if(strcmp((p+j)->name,(p+k)->name)<0.5) { strcpy(m,(p+k)->name); strcpy((p+k)->name,(p+j)->name); strcpy((p+j)->name,m); } } } void shuchu(struct stu *p,int r) { int d; for(d=0;d<r;d++) { printf("%s\n",(p+d)->name); } }