轩辕修罗[VIP] 发表于 2014-5-20 11:59:51

大神。帮忙看下

#include <stdio.h>
void main()
{
        void maopao(int s[]);       
        int s1[] ={12,15,4156,1,651,35,163,1,3,156,1,351,3};
maopao(s1);


}
void maopao(int s[])
{

        int        slen = sizeof(s) / sizeof(s),i,j,kep;

        printf("未排序的数组:");
        for (i=0;i<slen;i++)
        {
                printf("%d ",s);
        }

        for(i = 1; i<slen-1;i++)
        {
                for (j=0;j<slen-1;j++)
                {
                        if (s >s)
                        {
                                kep= s;
                                s=s;
                                s=kep;
                        }
                }
        }
        printf("\n排序后的数组 :");

        for (i=0;i<slen;i++)
        {
                printf("%d ",s);
        }

}


http://bbs.fishc.com/forum.php?mod=image&aid=25280&size=300x300&key=6dbd091df7848910&nocache=yes&type=fixnone

轩辕修罗[VIP] 发表于 2014-5-20 12:00:24

为何会这样!!!:shock::shock::shock::shock::shock:

风之残月 发表于 2014-5-20 12:29:04

#include <stdio.h>

void maopao(int s[], int size);

void main()
{   
    int s1[] = {12, 15, 4156, 1, 651, 35, 163, 1, 3, 156, 1, 351, 3};
        maopao(s1, sizeof(s1) / sizeof(int));
}

void maopao(int s[], int size)
{
    int i, j, kep;

    printf("未排序的数组: ");

    for (i=0; i<size; i++)
    {
      printf("%d ",s);
    }

    for(i=0; i<size-1; i++)
    {
      for (j=0; j<size-i; j++)
      {
            if (s > s)
            {
                kep      = s;
                s   = s;
                s = kep;
            }
      }
    }

    printf("\n排序后的数组: ");

    for (i=0; i<size; i++)
    {
      printf("%d ",s);
    }

}void maopao(int s[]) 参数传递的是指针,sizeof(s)大小为一个指针的大小,最后slen为1,一般对于结构体或数组大小,以参数的形式提供,看了一下,你使用的是冒泡排序,有地方错了,我改了一下,你看看吧

轩辕修罗[VIP] 发表于 2014-5-21 17:36:32

风之残月 发表于 2014-5-20 12:29 static/image/common/back.gif
void maopao(int s[]) 参数传递的是指针,sizeof(s)大小为一个指针的大小,最后slen为1,一般对于结构体或数 ...

{:7_155:}...谢谢!
页: [1]
查看完整版本: 大神。帮忙看下