用c语言穷举

Python017

用c语言穷举,第1张

#include <stdio.h>

void main()

{

int a[100]={0}

int i,j,k,m,n=0,z

printf("输入数字,每次回车为一个,以-1为结束数字\n")

for(i=0i<100i++)

{

scanf("%d",&a[i])

n++

if(a[i]==-1)

{

break

}

}

for(i=0i<n-1i++)

{

for(j=0j<n-2-ij++)

{

if(a[j]>a[j+1])

{

k=a[j]

a[j]=a[j+1]

a[j+1]=k

}

}

}

printf("排序后的数字是:\n")

for(i=0i<n-1i++)

printf("%d\n",a[i])

printf("请输入要插入的数字")

scanf("%d",&m)

for(i=0i<n-1i++)

{

if(a[i]<=m &&a[i+1]>m)

{

z=i

break

}

else

{

z=-2

}

}

if(z>=0)

{

for(i=n-1i>zi--)

{

a[i+1]=a[i]

}

a[z+1]=m

}

if(z==-2)

{

a[n]=m

}

for(i=0i<ni++)

{

printf("%d\n",a[i])

}

}

穷举法也叫枚举法或列举法。通常对于一些要求得到精确结果而所求结果又不大的时候可用此法,具体的做法就是将所有可能的情况一一举出。

程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。

代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法,即一次性解决问题。