程序运行结果如下:
Please input String number(<5):5
Please input 1 String :Welcome
Please input 2 String :IMTI
Please input 3 String :Apple
Please input 4 String :Teacher
Please input 5 String :ARM
Output String…
ARM
Apple
IMTI
Teacher
Welcome
Press any key to continue
以下是全部程序内容:
但是运行的结果不对
Output String…
Apple
ARM     //前2个字符串的顺序不对
IMTI
Teacher
Welcome
Press any key to continue
请帮忙修改Sort()函数的插入排序法好让程序运行结果正确
谢谢啦。。。急急急。。。
#include<stdio.h>
#include<string.h>
#include<malloc.h>
int Accept(char *string[5]);
void Sort(char *name[],int n);
void Print(char *name[],int n);
main()
{
    int n=0;
    char *str[5];
    n=Accept(str);
    Sort(str,n);
    Print(str,n);
}
int Accept(char *string[])
{
    int i,n;
    printf("Please input String number(<5):");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        string[i] = (char*)malloc(20);
        printf("Please input %d String :",i+1);
        scanf("%s",string[i]);
    }
    return n;
}
void Sort(char *name[],int n)//插入排序法
{
    int i,j;
    char *s;
    char c;
    for(i=1;i<n;i++)
    {
        c=name[i][0];
        s=name[i];    
        j=i-1;
        while(j >= 0 && name[j][0] > c)
        {   
            name[j+1]=name[j];
            j=j-1;
        }
        name[j+1]=s;
     }        
}
void Print(char *name[],int n)
{
    int i;
    printf("Output String...\n");
    for(i=0;i<n;i++)
    printf("%s\n",name[i]);
}



											
	    

	
											

