莫问流年 发表于 2014-5-6 09:38:12

哪里出错了呢,运行时停止运行

#include <stdio.h>

void main()
{
    void sort(char *name[], int n);
    void print(char *name[], int n);

    char *name[] = {"I love you!", "I hate you!", "What's wrong?", "A beautiful girl!"};
    int n = 4;

    sort(name, n);
    print(name, n);
}

void sort(char *name[], int n)
{
    int i, j, k;

    for(i = 0; i < n - 1; i++)
    {
      k = i;

      for(j = i + 1; j < n; j++)
      {
            if(strcmp(name, name) > 0)
            {
                k = j;
            }

            if(k != i)
            {
                char *temp;

                temp = name;
                name = name;
                name = temp;
            }
      }
    }
}

void print(char *name[], int n)
{
    int i;

    for(i = 0; i < n; i++)
    {
      printf("%s\n", *name);
    }
}

elvo 发表于 2014-5-6 09:47:07

大概应该有两处错误,我注释的地方#include <stdio.h>
#include <string.h>//使用了strcmp()函数要包含头文件

int main()
{
    void sort(char *name[], int n);
    void print(char *name[], int n);

    char *name[] = {"I love you!", "I hate you!", "What's wrong?", "A beautiful girl!"};
    int n = 4;

    sort(name, n);
    print(name, n);
   
    return 0;
}

void sort(char *name[], int n)
{
    int i, j, k;

    for(i = 0; i < n - 1; i++)
    {
      k = i;

      for(j = i + 1; j < n; j++)
      {
            if(strcmp(name, name) > 0)
            {
                k = j;
            }

            if(k != i)
            {
                char *temp;

                temp = name;
                name = name;
                name = temp;
            }
      }
    }
}

void print(char *name[], int n)
{
    int i;

    for(i = 0; i < n; i++)
    {
      printf("%s\n", name);//这里name不加*
    }
}
页: [1]
查看完整版本: 哪里出错了呢,运行时停止运行