好文档 - 专业文书写作范文服务资料分享网站

C语言经典算法100例

天下 分享 时间: 加入收藏 我要投稿 点赞

___________________________________________________________________

程序源代码: main() {

int a,n,count=1; long int sn=0,tn=0;

printf(\scanf(\

printf(\while(count<=n) {

tn=tn+a; sn=sn+tn; a=a*10; ++count; }

printf(\}

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2 +3.编程找出1000以内的所有完数。

___________________________________________________________________

程序源代码: main() {

static int k[10]; int i,j,n,s;

for(j=2;j<1000;j++) { n=-1; s=j;

for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } }

if(s==0) {

printf(\for(i=0;i printf(\printf(\[n]); } } }

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在第10次落地时,共经过多少米?第10次反弹多高?

___________________________________________________________________

程序源代码: main() {

float sn=100.0,hn=sn/2; int n;

for(n=2;n<=10;n++) {

sn=sn+2*hn; hn=hn/2; }

printf(\printf(\}

题目:一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的 一半又多吃了一个,到第十天的时候发现还有一个.

___________________________________________________________________

程序源代码:

main() {

int i,s,n=1;

for(i=1;i<10;i++) {

s=(n+1)*2 n=s; }

printf(\第一天共摘了%d个桃\\n\}

迭代法求方程根

___________________________________________________________________

#define Epsilon 1.0E-6 #include main() {

float a,x0,x1;

printf(\请输入要求的数:\scanf(\x0=a/2;

x1=(x0+a/x0)/2;

while(fabs(x1-x0)>=Epsilon) {

x0=x1;

x1=(x0+a/x0)/2; }

printf(\的平方根:%f.5\\n\}

#define Epsilon 1.0E-6 #include #include main() {

float num,pre,this; do {

scanf(\}while(num<0); if (num==0)

printf(\else {

this=1; do {

pre=this;

this=(pre+num/pre)/2;

}while(fabs(pre-this)>Epsilon); }

printf(\}

用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根

#define Epsilon 1.0E-6 #include main() {

float x1,x0=1.5;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); while(fabs(x1-x0>=Epsilon) { x0=x1;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); }

printf(\方程的根为%f\\n\}

用二分法求上题

#define Epsilon 1.0E-5 #include main() {

folat x1,x2,x0,f1,f2,f0; x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6; while(fabs(f0)>=Epsilon) {

if(f0*f1<0) { x2=x0;

f2=2*x2*x2*x2-4*x2*x2+3*x2-6; }

if(f0*f2<0) { x1=x0;

f1=2*x1*x1*x1-4*x1*x1+3*x1-6; }

x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6; }

printf(\用二分法求得方程的根:%f\\n\}

题目:打印出如下图案(菱形) * *** ****** ******** ****** *** *

___________________________________________________________________

程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利 用双重for循环,第一层控制行,第二层控制列。

___________________________________________________________________

程序源代码: main() {

int i,j,k;

for(i=0;i<=3;i++) {

for(j=0;j<=2-i;j++) printf(\

for(k=0;k<=2*i;k++) printf(\printf(\}

for(i=0;i<=2;i++) {

for(j=0;j<=i;j++) printf(\

for(k=0;k<=4-2*i;k++) printf(\printf(\} }

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同, 十位与千位相同。

___________________________________________________________________

程序分析:同29例

___________________________________________________________________

C语言经典算法100例

___________________________________________________________________程序源代码:main(){inta,n,count=1;longintsn=0,tn=0;printf(\scanf(\printf(\while(count<=n)
推荐度:
点击下载文档文档为doc格式
1cja69jnpf0h1ll01eyq0a6ri16osu014gk
领取福利

微信扫码领取福利

微信扫码分享