刚学到指针和数组,帮忙写个起泡排序的例子
and传点指针的程序看下.书上的例子好少啊~帮助我理解~hehe
谢谢大家了!
thanks.
我写了个烂的:
#include "stdio.h"
main()
{
int a[10],*p,i,j,*b;
for(i=0;i<10;i++)
{ scanf("%d",&a[i]); }
b=a;
for(i=0;i<10;i++)
{
for(j=i+1;j<10;j++)
if(*(b+i)>*(b+j))
{
*p=*(b+i);
*(b+i)=*(b+j);
*(b+j)=*p;
}
}
for(i=0;i<10;i++)
printf("%-5d",*(b+i));
}
但是运行结果后面有个 NULL....
不知道怎么回事.还有
地址可以交换吗?
/*从小到大*/
#include "stdio.h"
#define N 6
void main()
{ int i,j,x[N+1],tmp;
clrscr();
for(i=1;i<=N;i++)
{
printf("please input NO.%d:\t",i);
scanf("%d",&x[i]);
}
for(i=1;i<N;i++)
for(j=1;j<=N-i;j++)
if (x[j]>x[j+1])
{tmp=x[j]; x[j]=x[j+1];x[j+1]=tmp;
}
for(i=1;i<=N;i++)
printf("%-3d",x[i]);
getch();
}
上面是起泡法
/*从小到大*/
#include "stdio.h"
#define N 6
void main()
{ int i,j,x[N+1],tmp;
clrscr();
for(i=1;i<=N;i++)
{
printf("please input NO.%d:\t",i);
scanf("%d",&x[i]);
}
for(i=1;i<N;i++)
for(j=i+1;j<=N;j++)
if (x[j]<x[i])
{tmp=x[i];
x[i]=x[j];
x[j]=tmp;
}
for(i=1;i<=N;i++)
printf("%3d",x[i]);
getch();
}
比较法