/* 利用指標法,實作10個數的升序排列*/
#include<stdio.h>
void main()
{void swap(int *p1,int *p2);
int i,n,j,k,a[100];
int * p;
p=a;
printf("input num:");
scanf("%d\n",&n);
for(i=0;i<n;i++)
scanf("%d",p++);
for(j=0;j<n;j++)
{if(a[j]>a[j+1]) swap((p+j),(p+j+1)); }
for(k=0;k<n;k++)
printf("%d\n",a[k]);
getch();
}
void swap(int * p1,int * p2)
{int p;
p= * p1; * p1= * p2; * p2=p;
}
uj5u.com熱心網友回復:
排序,至少雙回圈uj5u.com熱心網友回復:
回圈撰寫不對uj5u.com熱心網友回復:
單個for回圈肯定排序結果不正確啊uj5u.com熱心網友回復:
for(j=0;j<n-1;j++){if(a[j]>a[j+1]) swap((p+j),(p+j+1)); }
你這一個回圈,只能實作吧最小的排在最前面,在那回圈里面再加個回圈,就OK了
for(i =0 ;i < n-1;i++)
{
for(j = 0; j < n ; j++)
{
if(a[j] > a[j+1])
swap((p+j),(p+j+1));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143424.html
標籤:基礎類
下一篇:java排序,找中值的問題
