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

#include<stdio.h>
int maxv(int *,int);
void bubble(int *,int);
int main(){
int n,i=0;
printf("請輸入陣列大小:");
while(scanf("%d",&n)!=1){
printf("請輸入有效數字\n");
setbuf(stdin,NULL);
printf("請輸入陣列大小:");
}
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("\n【MAX:%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++;
}
}

留言