指標陣列傳遞運用練習(泡沫排序、比大小)-函式運用

在指標與陣列方面多練習直到熟稔後再繼續學習其他的,個人認為這方面觀念會影響未來資料庫與演算法之類的學習,在取址、運算元、運算子等等多了解對未來會有幫助,最好可以完整地把它們給都吃透了。

練習比大小、以及泡沫排序由小到大。
#include<stdio.h>
int maxv(int *,int);
void bubble(int *,int);
int main(){
int n,i=0;
printf("請輸入陣列大小:");
scanf("%d",&n);
int v[n];
int*p=v;
while(p!=&v[n]){
printf("v[%d]=",i);
scanf("%d",&*p);
++p;
++i;
}
printf("\n");
p=v;
i=0;
while(p!=&v[n]){
printf("v[%d]=",i);
printf("%d\t",*p);
p++;
i++;
}
printf("\nMAX:%d\n",maxv(v,n));
bubble(v,n);
return 0;
}

int maxv(int *a,int b){
int max=*a;
int *c=a;
while(c!=&a[b]){
if(max<*c){
max=*c;
}
++c;
}
return max;
}
void bubble(int *x,int y){
int *bub=x;
int i,j;
for(i=1;i<y;++i){
for(j=0;j<y-i;++j){
if(x[j]>x[j+1]){
int t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
}
printf("小到大:");
bub=x;
while(bub!=&x[y]){
printf("%d ",*bub);
bub++;
}
}

留言