现在在期末,正好帮自己整理一下
一、常规冒泡排序
#include<stdio.h>
#define N 10
int main()
{
int temp,a[N];
for(int i=0;i<N;i++)
scanf("%d",&a[i]);
//下面是冒泡排序
for(i=0;i<N-1;i++)
for(int j=0;j<N-1-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<N;i++){
printf("%5d",a[i]);
if((i+1)%5==0)
printf("\n");
return 0;
二、函数版,传递数组名
#include<stdio.h>
void maopao(int a[],int n);
#define N 10
int main()
{
int a[N]={23,43,54,3,5,56,45,76,4,87};
charu(a,N);
for(int i=0;i<N;i++)
printf("%5d",a[i]);
return 0;
//下面是冒泡排序
void maopao(int a[],int n)
{
int temp;
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
三、函数之间传递指针
#include<stdio.h>
void maopao(int *ptr,int n);
void input(int *ptr,int n);
void output(int *ptr,int n);
#define N 10
int main()
{
int a[N],*p;
p=a;
printf("Please input.\n");
input(p,N);
maopao(p,N);
printf("There are outputs.\n");
output(p,N);
return 0;
}
void maopao(int *ptr,int n)
{
int temp,*p;
p=ptr
for(int i=0;i<n;i++)
{
ptr=p;
for(int j=0;j<n;j++)
if(*ptr>*(ptr+1))
{
temp=*ptr;
*ptr=*(ptr+1);
*(ptr+1)=temp;
}
ptr++;
}
}
void input(int *ptr,int n)
{
int *p_end;
p_end=ptr+n;
for(;ptr<p_end;ptr++)
scanf("%d",ptr);
}
void output(int *ptr,int n)
{
int *p_end;
p_end=ptr+n;
for(;ptr<p_end;ptr++)
printf("%5d",*ptr);
}