C语言经典案例(10~~12)

(10)题目:求1+2!+3!+...+5!的和

/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int n,s=0,t=1;
for(n=1;n<=5;n++)
 {
 t*=n;
 s+=t;
 }
printf("1+2!+3!...+5!=%d\n",s);
}

C语言经典案例(10~~12)_第1张图片

(11)利用递归方法求5! 

 /* Note:Your choice is C IDE */
#include "stdio.h"
int f(int a)

int sum;
{
int sum;
if(a==0)
 sum=1;
else
 sum=a*f(a-1);
return sum;
}
}
main()
{    
printf("%d",f(5));
}

C语言经典案例(10~~12)_第2张图片

(12)选择排序法:从小到大输出数字

什么是选择排序?

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:

初始序列:{49 27 65 97 76 12 38}
  第1趟:12与49交换:12{27 65 97 76 49 38}
  第2趟:27不动 :12 27{65 97 76 49 38}
  第3趟:65与38交换:12 27 38{97 76 49 65}
  第4趟:97与49交换:12 27 38 49{76 97 65}
  第5趟:76与65交换:12 27 38 49 65{97 76}
  第6趟:97与76交换:12 27 38 49 65 76 97 完成

void main()

{
   int t,i,j,k,l,a[99]={0};
   printf("需要输入多少个数:");
   scanf("%d",&k);
   printf("请输入%d个数",k);
   for(i=0;i    scanf("%d",&a[i]);
   for(i=0;i    { l=i;
    for(j=i+1;j     if(a[j]     l=j;
    if(l!=i)
    { t=a[i];
        a[i]=a[l];
        a[l]=t;    
   }}
    printf("选择排序后的顺序为:");
    for(i=0;i     printf(" %d ",a[i]);
}

    C语言经典案例(10~~12)_第3张图片

 

 

你可能感兴趣的:(C语言案例)