程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c語言-C語言 給定一個整數序列和一個數k,求這個序列中第k小的數。

c語言-C語言 給定一個整數序列和一個數k,求這個序列中第k小的數。

編輯:編程綜合問答
C語言 給定一個整數序列和一個數k,求這個序列中第k小的數。

C語言 給定一個整數序列和一個數k,求這個序列中第k小的數。

我的程序

 #include<stdio.h>
int n[10000];
void Nok()
{
  int i=0,j=0,t,k,q=0;
  char c;
  scanf("%d",&n[i++]);
  c=getchar();
  while(c!='\n')
  {
      scanf("%d",&n[i++]);
      c=getchar();
  }
  t=i-2;
  k=n[i-1];//最後一個數是k
  while(k!=0)
  {   
   for(i=0;i<=t;i++)//尋找k次最小值,每次將最小值所對應變量賦值其下一變量消掉此次最小值(最後一次不變直接輸出)
   {
     if(n[i]<n[q])
     {          
        q=i;
     }
   }
   k--;
   if(k==0) printf("%d\n",n[q]);
   else {n[q]=n[q+1]; q++;}
  }  
}
void main()
{
   Nok();
}

結果很奇怪不知道程序哪裡有問題麻煩幫忙看一看

最佳回答:


n[q]=n[q+1];這句如果q是最後一個數,呢q+1不就越界了。

a1193561652
sinat_31829943
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved