第一范文网 - 专业文章范例文档资料分享平台

100个超级经典的C语言算法,程序员必须练习

来源:用户分享 时间:2025/6/6 9:36:09 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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(\ } } }

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,

求它在第10次落地时,共经过多少米?第10次反弹多高?

___________________________________________________________________

程序源代码: main() {

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

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

sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ }

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例

___________________________________________________________________

程序源代码: main( ) {

long ge,shi,qian,wan,x; scanf(\wan=x/10000;

qian=x000/1000; shi=x0/10; ge=x;

if (ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/ printf(\else

printf(\}

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,

则继续判断第二个字母。

___________________________________________________________________

程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语

句判断第二个字母。

100个超级经典的C语言算法,程序员必须练习.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8hpp54q360565jb3uu2j_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top