54黑科技 发表于 2019-10-30 16:54:56

随机输入十个数,然后按从大到小顺序输出。可是输出结果一直出错,请问大佬看看哪....

#include <stdio.h>
void main()
{
        void swap(int *p,int n);
        int a,i;
        printf("Please input 10 numbers:");
        for(i = 0;i < 10;i++)
        {
                scanf("%d",&a);
        }

        swap(a,10);

        for(i = 0;i < 10;i++)
        {
                printf("%d",&a);
        }
        printf("\n");
}

void swap(int *p,int n)
{
        int i,j,k;
        for(i = 0;i < n-1;i++)
        {
                for(j = 1;j < 10;j++)
                {
                        if(*(p+i) < *(p+j))
                        {
                                k = *(p+i);
                                *(p+i) = *(p+j);
                                *(p+j) = k;
                        }
                }
        }
}

shuofxz 发表于 2019-10-30 21:40:10

写的是冒泡算法吧。

void swap(int *p,int n) 这个函数写的有问题,建议你把冒泡算法重新看一下吧,自己找找问题 能学的更快

员理管帅最 发表于 2019-10-31 01:26:26

兄弟,你代码有点意思,我看了一下,之所以会出问题,第一,你先把main函数里打印结果printf("%d",&a);这个&应去掉,原因你懂得,还有就是你swap涵数是有问题,你画图分析一下会发现问题,除第一是正常,其他都不正常,应该在第二层for语句中j=1应改为j=1+i,

54黑科技 发表于 2019-10-31 14:39:28

员理管帅最 发表于 2019-10-31 01:26
兄弟,你代码有点意思,我看了一下,之所以会出问题,第一,你先把main函数里打印结果printf("%d",&a);这 ...

对对对,我检查了一下,的确是这些问题。调试成功了,谢谢您!

54黑科技 发表于 2019-10-31 14:40:09

shuofxz 发表于 2019-10-30 21:40
写的是冒泡算法吧。

void swap(int *p,int n) 这个函数写的有问题,建议你把冒泡算法重新看一下吧,自己 ...

好的,谢谢您!
页: [1]
查看完整版本: 随机输入十个数,然后按从大到小顺序输出。可是输出结果一直出错,请问大佬看看哪....