下载后可任意编辑/*C 语言重要程序算法实例整理*///递归练习:阶乘#include"stdio.h"float fac(int x);void main(){int n;puts("Input the number:");scanf("%d",&n);float f;f=fac(n);printf("%d!=%2.f",n,f);}float fac(int x){int f=x;if(x<0)puts("ERROR!");else{if(x==0||x==1)f=1;//当 x=0 或 x=1 时,须返回 f 的值,考虑满足条件时 f 值是多少elsef=x*fac(x-1);//返回函数 return 必须写在最后,每次调用完函数后都要有一个返回值}return f;}/*递归调用的关键:1.f=x*fac(x-1)的嵌套模式;2.最后一个被调函数的返回值,比如 fac(0);*//*===================================================================*///递归练习:求和 1#include"stdio.h"int sum(int x);void main(){int n,*p=&n,a;puts("Input the last number:");scanf("%d",p);a=sum(n);printf("1+…+%d=%d\n",n,a);下载后可任意编辑}int sum(int x){int s=0;if(x==0)s=0;//当 x=0 时,须返回 s 的值,考虑满足条件时 s 值是多少elses=x+sum(x-1);return s;//返回函数 return 必须写在最后,每次调用完函数后都要有一个返回值}/*递归调用的关键:1.s=x*sum(x-1)的嵌套模式;2.最后一个被调函数的返回值,比如 sum(0);*//*==================================================================*///递归求和 2#include"stdio.h"int SUM(int n){static int fs=0;fs+=n;if((n==1)&&(n>0))return(fs);elseSUM(n-1);}void main(){int x;int fsum;printf("please input the number:\n");scanf("%d",&x);fsum=SUM(x);printf("SUM=%d\n",fsum);}/*=================================================================*///动态分配内存应用:删除字符#include"stdio.h"#include"stdlib.h"void main(){int n,i;下载后可任意编辑printf("Please input n:");scanf("%d",&n);printf("Please input the string:");char *p;p=(char *)malloc(sizeof(char));for(i=0;i