这是一个按小到大输出三个字符串的程序,调度不过,请帮忙,有错的地方请各位大哥指正,能帮我修改为最精短为最好!先谢谢了!!用C啊,我不会C++
main()
{void change(char *,int);
int i=0;
char *p[3];
for(;i<3;i++)
scanf("%s",*(p+i));
change(p,3);
for(i=0;i<3;i++)
printf("%s\n",p+i);
}
void change(char *name[],int n)
{int m=0,k,j;
char *p2;
for(;m<n-1;m++)
{k=m;
for(j=m+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=m)
{p2=name[k];name[k]=name[m];name[m]=p2;}
}
}
main()
{void change(char *,int);
int i=0;
char *p[3];
for(;i<3;i++)
scanf("%s",*(p+i));
change(p,3);
for(i=0;i<3;i++)
printf("%s\n",p+i);
}
void change(char *name[],int n)
{int m=0,k,j;
char *p2;
for(;m<n-1;m++)
{k=m;
for(j=m+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=m)
{p2=name[k];name[k]=name[m];name[m]=p2;}
}
}
{
int i=0;
char *p[3];
for(;i<3;i++)
{
p[i]=(char*)malloc(512);
scanf("%s",p[i]);
}
change(p,3);
for(i=0;i<3;i++)
{
printf("%s\n",p[i]);
free(p[i]);
}
}
void change(char *name[],int n)
{int m=0,k,j;
char *p2;
for(;m<n-1;m++)
{k=m;
for(j=m+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=m)
{p2=name[k];name[k]=name[m];name[m]=p2;}
}
}
#include "iostream.h"
#include <string.h>int main(int argc, char* argv[])
{
void change(char *name[],int);
int i=0;
char *p[3];
for(;i<3;i++)
{
p[i]=new char[];
cin>>*(p+i);
}
change(p,3);
for(i=0;i<3;i++)
cout<<p[i];
return 0;
}
void change(char *name[],int n)
{
int m=0,k,j;
char *p2;
for(;m<n-1;m++)
{
k=m;
for(j=m+1;j<n;j++)
{
if(strcmp(name[k],name[j])>0) k=j;
if(k!=m)
{
p2=name[k];name[k]=name[m];name[m]=p2;
}
}
}
}
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
main()
{void change(char *name[],int n);
int i=0;
char *p[3];
char temp[80];
int length;
for(;i<3;i++)
{
scanf("%s",temp);
length=strlen(temp);
p[i]=(char*)malloc(length+1);
strcpy(p[i],temp);
}
change(p,3);
for(i=0;i<3;i++)
{
printf("%s\n",p[i]);
free(p[i]);
}
return 0;
}
void change(char *name[],int n)
{int m=0,k,j;
char *p2;
for(;m<n-1;m++)
{k=m;
for(j=m+1;j<n;j++)
if(strcmp(name[k],name[j])>0) k=j;
if(k!=m)
{p2=name[k];name[k]=name[m];name[m]=p2;}
}
}