C程序设计 (第四版) 谭浩强 习题8.1
习题 8.1 输入3个整数,按由小到大的顺序输出。(指针法)
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
方法:使用指针、动态内存分配和函数的模块化设计
#include <stdio.h>
#include <stdlib.h>
#define N 3
void initialArr(int **arr, int n){
*arr = (int*)malloc(n *sizeof(int));
}
void inputArr(int *arr, int n){
printf("Enter %d numbers: ", n);
for(int *p = arr; p < arr + n; p++){
scanf("%d", p);
}
}
void ascendingSort(int *arr, int n){
int temp;
for(int *p = arr; p < arr + n; p++){
for(int *q = p + 1; q < arr + n; q++){
if(*p > *q){
temp = *p;
*p = *q;
*q = temp;
}
}
}
}
void outputArr(int *arr, int n){
printf("New Sort: ");
for(int *p = arr; p < arr + n; p++){
printf("%d ", *p);
}
printf("\n");
}
void freeArr(int **arr){
free(*arr);
arr = NULL;
}
int main(){
int *arr = NULL;
initialArr(&arr, N);
inputArr(arr, N);
ascendingSort(arr, N);
outputArr(arr, N);
freeArr(&arr);
system("pause");
return 0;
}