为美好的幻想献上祝福 2021-05-22 22:54 采纳率: 100%
浏览 48
已结题

为什么结果是一堆乱码呢?

#include <stdio.h>
typedef int a[];
int kp(int *a,int begin,int end,int k)
{
    int i=begin;
    int j=end;
    int temp=a[begin];
    while(i<j)
    {
    while(i<j&&temp>a[j])
    {
        j--;
    }
    a[i]=a[j];
    while(i<j&&temp<a[i])
    {
        i++;
    }
    a[j]=a[i];
    }
    temp=a[i];
    if(i==k-1)
    {
    return a[i];
    }
    else if(i>k-1)
    {
        kp(a,begin,i-1,k);
    }
    else if(i<k-1)
    {
        kp(a,i+1,end,k-i);
    }

}
int main(void)
{
    int a[10]={12,31,21,17,14,6,8,4,15,19};
    int i=0,j=9,x;
    for(i=0;i<=j;i++)
    {
        printf("%d\t",a[i]);
    }
    printf("请输入你想找的第k大的数\n");
    scanf("%d",&x);
    printf("%d",kp(a,i,j,x));

}

  • 写回答

1条回答 默认 最新

  • qfl_sdu 2021-05-22 22:59
    关注

    printf("%d",kp(a,i,j,x));运行到这里的时候,i和j的值都是9,因为上面经过了for循环,所以你起始位置和终止位置都是9,出的结果肯定是错误的。

    如有帮助,请采纳一下,谢谢。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 supLink 用户定位
  • ¥15 materials studio中sorption模块得到的吸附量如何计算出绝对吸附量和自由气量
  • ¥15 odoo17生产成品入出库会计日记账设置及自动产生会计分录
  • ¥15 MCU控制20V PWM波输出的控制电路
  • ¥15 关于智能数据系统的问题
  • ¥15 python 打包sdk不成功,如何解决?
  • ¥15 adv找不到可向其添加属性的有效项目。
  • ¥15 cesm2.2.0移植问题。./manage_externals/checkout_externals
  • ¥15 ntp对时中的时标问题
  • ¥35 pcb上电后,不一会儿,主控过热烧毁