ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:18.09KB ,
资源ID:7536518      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7536518.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(我的c语言程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

我的c语言程序.docx

1、我的c语言程序我的c语言程序1.求a的开方#include#includeint main() float x0,x1,a; scanf(%f,&a); x0=a/2; x1=(x0+a/x0)/2; do x0=x1; /循环体中这个必须先执行 x1=(x0+a/x0)/2; while (fabs(x0-x1)=1e-5); printf(%fn,x0); return 0;2.完数:一个数等于他的因子之和(6=1+2+3)输出1000之内所有完数和其因子#includeint main() int n,i,s; for(n=2;n=1000;n+) s=0; /循环体中这个必须先执行 f

2、or(i=1;in;i+) if (n%i)=0) s=s+i; if(s=n) printf(%d its factors are ,n); for(i=1;in;i+) if(n%i)=0) printf(%d ,i); putchar(n); return 0;3.近似求的值,同时输出最后一位循环精度以及循环次数#includeint main() int i; double j=1,t,s=0; for(i=1;1/j=1e-8;i=i+2) /此精度可以改 j=i; /必须要这样做,要把i变为double型才能分之一 if(i%4=1)t=1/j; else t=-1/j; s=s+

3、t; i=i/2+1; printf(=%15.14fn循环精度%15.14fn循环次数%dn,s*4,t,i) return 0; /我的这个程序(for语句)显然比书上的算法简单4.输出100到200之间的所有素数#includeint main() int n,i,s; for(n=101;n=200;n+) /数据范围可以更改 s=0; /每次必须将s赋值为0 for(i=2;in;i+=2) if(n%i=0) s=s+i; if(s=0) printf(%d ,n); putchar(n); return 0;5.输入两个数,求其最大公约数与最小公倍数#includeint mai

4、n() int m,n,i,t; scanf(%d,%d,&m,&n); if(mn) t=m;m=n;n=t; for(i=1;i=n;i+) if(n%i=0)&(m%i=0) t=i;break; printf(最大公约数为%dn,t); for(i=m;i+) if(i%n=0)&(i%m=0) t=i;break; printf(最小公倍数为%dn,t); return 0;6.用二分法求方程的根#includeint main() double xa,xb,fa,fb; for(xa=-10,xb=10;(xb-xa)=1e-15;) /范围可以改变 fa=2*xa*xa*xa-4

5、*xa*xa+3*xa-6; /方程可以改变 fb=2*xb*xb*xb-4*xb*xb+2*xb-6; if(fa+fb)/20) xb=(xa+xb)/2; printf(方程的解为x=%fn,xa); return 0;6.几个数从小到大排序(用数组)选择法#includeint main() printf(请输入五个整数:n); int a5; /数的个数可以改 int i,j,m; for(i=0;i5;i+) scanf(%d,&ai); for(i=0;i5;i+) for(j=i+1;j5;j+) if(ajai) m=aj;aj=ai;ai=m; for(i=0;i5;i+)

6、 printf(%d ,ai); putchar(n); return 0; /又比老师的程序简单冒泡法排序#includeint main() printf(请输入五个整数:n); int a5; int i,j,m,o; /定义o简化算法 for(i=0;i5;i+) scanf(%d,&ai); for(i=0;i4;i+) o=0; for(j=0;jaj+1) m=aj;aj=aj+1;aj+1=m;o+; if(o=0)break; for(i=0;i5;i+) printf(%d ,ai); putchar(n); return 0;7.求矩阵的转制#includeint mai

7、n() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for (i=0;i=1;i+) for (j=0;j=2;j+) printf(%5d,aij); bji=aij; putchar(n); printf(array b:n); for (i=0;i=2;i+) for (j=0;j=1;j+) printf(%5d,bij); putchar(n); return 0; /优化讲义上所得8.用筛选法求10000以内所有素数#include#includeint main() int i,j,n,a10001; /范围可改 a1

8、=0; for(i=2;i=sqrt(10000);i+) for(j=2;j*i=10000;j+)aj*i=0; for(i=1,n=0;i=10000;i+) if(ai!=0) printf(%6d,i);n+; /用n计数,每十个换行 if(n=10) putchar(n);n=0; putchar(n); return 0;9.输出杨辉三角#include#define N 10 /符号常量N为输出杨辉三角的行数,可一改全改int main() /上面的几个可改数字的程序也可以如此做,方便简单 int i,j,aN+1N+1; for(i=1;i=N;i+) ai1=1; for(

9、j=1;j=N;j+) aij=1; for(i=3;i=N;i+) for(j=2;ji;j+) aij=ai-1j-1+ai-1j; for(i=1;i=N;i+) for(j=1;j=i;j+) printf(%5d,aij); putchar(n); putchar(n); return 0;10.得意之作!打印2014年年历表。#includeint main() int i,j,k,n=2; /i月份,j天数,k每月前空格,n列数计数 int m13=0,31,28,31,30,31,30,31,31,30,31,30,31; /m数组记每月天数 printf( 2014年年历表n

10、n); for(i=1;i=12;i+) switch(i) case 1:printf(一月n);break; case 2:printf(二月n);break; case 3:printf(三月n);break; case 4:printf(四月n);break; case 5:printf(五月n);break; case 6:printf(六月n);break; case 7:printf(七月n);break; case 8:printf(八月n);break; case 9:printf(九月n);break; case 10:printf(十月n);break; case 11:

11、printf(十一月n);break; case 12:printf(十二月n);break; printf(n 一 二 三 四 五 六 日n); for(k=1;k=n;k+)printf( ); for(j=1;j=mi;j+) printf(%3d,j); n+; if(n=7) putchar(n);n=0; printf(nn); return 0; 11.hanoi移盘子问题,运用函数递归,难! #includevoid move(char x,char y) printf(%c-%cn,x,y);void hanoi(int n,char a,char b,char c) if(

12、n=1)move(a,c); else hanoi(n-1,a,c,b); move(a,c); hanoi(n-1,b,a,c); int main() int m; printf(hanoi问题,将n个盘子从A借助B移动到C。n请输入盘子数n:); scanf(%d,&m); printf(移动方法为:n); hanoi(m,A,B,C);12.函数求最大公约数与最小公倍数#includeint Y(int a,int b) /最大公约数用递归函数的辗转相除法求得 int c,d,x; c=a/b,d=a%b; if(d=0)x=b; else x=Y(b,d); return x; in

13、t B(int a,int b) return(a*b/Y(a,b); /两数乘积等于其最大公约数与最小公倍数相乘int main() int a,b; printf(请输入两个整数:); scanf(%d%d,&a,&b); printf(最大公约数为%dn最小公倍数为%dn,Y(a,b),B(a,b); return 0;13,用函数求方程的根,判别式的情况都要考虑#include#includevoid root(double a,double b,double c);void root1(double a,double b,double c);void root2(double a,d

14、ouble b,double c);void root3();int main() double a,b,c; scanf(%lf %lf %lf,&a,&b,&c); root(a,b,c); return 0;void root(double a,double b,double c) double x=b*b-4*a*c; if(x0) root1(a,b,c); else if(x=0) root2(a,b,c); else root3();void root1(double a,double b,double c) double x=sqrt(b*b-4*a*c); printf(Th

15、e roots is%f,%fn,(-b-x)/(2*a),(-b+x)/(2*a);void root2(double a,double b,double c) printf(The root is%fn,-b/(2*a);void root3() printf(无实根n); /并不高级,但是对于练习函数的用法有很大帮助14.算法:n个人围成一圈1,2,3报数,报到3退出,问最后剩下的人是原来的第几个?(经过耗费脑细胞的优化算法,终于得到最简单的程序!累死!)#include#define n 10int main() int an+1,i,j; for(i=1;i=n;i+)ai=1; f

16、or(i=1,j=0;j!=3*n;i+) if(i=n+1)i=1; if(ai!=0)j+; if(j%3=0)ai=0; printf(%dn,i-1); return 0; #include#define n 10#define t 3int main() int an+1,i,j; for(i=1;i=n;i+)ai=1; for(i=1,j=0;j!=t*n;i+) if(i=n+1)i=1; if(ai!=0)j+; if(j%t=0)&(ai!=0)ai=0;printf(%3dn,i); return 0; 15.关于四个学生五门成绩的一些处理(没什么的,只是它长,练习之用,

17、留下以作纪念)。P292 15题#includeint main() void average1(int (*a)5); void search1(int (*a)5); void search2(int (*a)5); int a45=77,88,99,44,55,65,54,98,78,23,85,95,96,94,100,45,100,100,100,15; for(int *p=*a,i=1;p=*a+19;p+,i+) printf(%4d,*p); if(i%5=0)putchar(n); average1(a); search1(a); search2(a); return 0;

18、int average(int *p) for(int i=1,s=0;i=5;i+,p+) s=s+*p; return(s/5);void average1(int (*a)5) for(int i=1,s=0;i=4;i+,a+) s=s+*a; printf(average=%dn,s/5);void search1(int (*a)5) for(int i=1,s=0;i=4;i+,a+) for(int j=0,t=0;j5;j+) if(*(*a+j)1) printf(%d fail.nher/his scores is:,i+1); for(int j=0;j5;j+) printf(%d ,*(*a+j); printf(naverage score:%dn,average(*a); void search2(int (*a)5) for(int i=1,s=0;i=4;i+,a+) for(int j=0,t1=0,t2=0;j=85) t1+; if(*(*a+j)=95) t2+; if(t11|t20) printf(%d winsn,i+1);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1