//
// main.c
// 指针和数组
//
// Created by 邱学伟 on 15/7/25.
// Copyright (c) 2015年 邱学伟. All rights reserved.
//
#include <stdio.h>
#define N 4
//冒泡法用指针实现
//输入
int *enterNumber();
//排序
void sortNumberAsc(int *ptr);
//输出
void printNumber(int *ptr);
int *enterNumber(){ //输入
static int ary[N];
printf("请输入一组数字:");
for (int i=0; i<N; i++) {
scanf("%d",&ary[i]);
}
int *p=ary;
return p;
}
void sortNumberAsc(int *ptr){ //排序
int tempN;
int i,j;
int *ptr_old=ptr; //记录指针初地址
for (i=0; i<N-1;i++) {
ptr=ptr_old; //循环之后ptr指向数组之后的地址,所以需要重新将指针指向初地址
for (j=0; j<N-1-i; j++) {
if (*ptr<*(ptr+1)) {
tempN=*ptr;
*ptr=*(ptr+1);
*(ptr+1)=tempN;
}
ptr++;
}
}
}
void printNumber(int *ptr){ //输出
printf("排序之后的数字为:");
for (int i=0; i<N; i++) {
printf("%d ",*ptr);
ptr++;
}
printf("\n");
}
int main(int argc, const char * argv[]) {
//冒泡法用指针实现:
//输入
int *ptr=enterNumber();
//排序
sortNumberAsc(ptr);
//输出
printNumber(ptr);
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-11 06:25:18