永发信息网

将若干字符串按字母顺序(由小到大)输出

答案:2  悬赏:10  手机版
解决时间 2021-05-01 12:55
  • 提问者网友:树红树绿
  • 2021-05-01 06:35

#include <stdio.h>
#include <string.h>
void main()
{
    void sort(char *name[],int n);
    void print(char *name[],int n);
    char *name[]={"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
    int n=5;
    sort(name,n);
    print(name,n);
}
void sort(char *name[],int n)
{
    char *temp;
    int i,j,k;
    for(i=0;i<n-1;i++)
    {   k=i;
        for(j=i+1;i<n;j++)
            if(strcmp(name[k],name[j])>0) k=j;
         if(k!=i)
         {
            temp=name[i]; name[i]=name[k]; name[k]=temp;
         }
     }
}
void print(char *name[],int n)
{
    int i;
    for(i=0;i<n;i++)
        printf("%s\n",name[i]);
}

 

 

和强哥的书的例题一模一样,但是能运行 却没有结果 到底是怎么回事啊?

最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-05-01 07:07
void sort(char *name[],int n)
{
    char *temp;
    int i,j,k;
    for(i=0;i<n-1;i++)
    {   k=i;
    for(j=i+1;j<n;j++)//把这里的i改成j就好了
    if(strcmp(name[k],name[j])>0) k=j;
    if(k!=i)
    {
    temp=name[i]; name[i]=name[k]; name[k]=temp;
    }
    }
}
全部回答
  • 1楼网友:青尢
  • 2021-05-01 08:21

我运行的时候竟然出了这样的错误:"0x1027d442"指令引用的"0xcccccccc"的内存。该内存不能为"read"。

程序里面肯定有非法操作

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯