拓展:
sizeof(arr)/sizeof(arr[0]);
用函数实现排序;
#include <stdio.h>
#define SIZE 10
void Sort(int *p,int len){
int temp;
for (int i = 0; i < len; i++) {
for (int j = len -1; j >= i; j--) {
if (*(p + j) > *(p + j+ 1)) {
temp = *(p + j);
*(p + j) = *(p + j + 1);
*(p + j + 1) = temp;
}
}
}
}
void print(int *p,int len){
for (int i = 0; i < len; i++) {
printf("%d,",*(p + i));
}
}
int main(int argc, const char * argv[]) {
int arr[SIZE] = {1,3,2,6,5,4,0,9,8,7};
print(arr,SIZE);
printf("\n");
Sort(arr,SIZE);
printf("排序之后的结果:\n");
print(arr, SIZE);
return 0;
}
递归
在调用一个函数的过程中又出现直接或间接的调用该函数本身,就是函数的递归调用
可以把要解决的问题转换为新问题,新问题的解决办法与原来相同,只是规模有规律的递减
每个子问题必须比原来问题的规模更小。
递归实现:5!
#include <stdio.h>
int Recursion(int n){
if (n == 1) {
return 1;
}
else{
return n * Recursion(n - 1);
}
}
int main(int argc, const char * argv[]) {
int a = 0;
printf("请输入10以内的数值:\n");
scanf("%d",&a);
int result;
result = Recursion(a);
printf("%d! = %d\n",a,result);
return 0;
}