我的c语言程序Word下载.docx

上传人:b****6 文档编号:20648571 上传时间:2023-01-24 格式:DOCX 页数:15 大小:18.09KB
下载 相关 举报
我的c语言程序Word下载.docx_第1页
第1页 / 共15页
我的c语言程序Word下载.docx_第2页
第2页 / 共15页
我的c语言程序Word下载.docx_第3页
第3页 / 共15页
我的c语言程序Word下载.docx_第4页
第4页 / 共15页
我的c语言程序Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

我的c语言程序Word下载.docx

《我的c语言程序Word下载.docx》由会员分享,可在线阅读,更多相关《我的c语言程序Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

我的c语言程序Word下载.docx

n;

i++)

if((n%i)==0)s=s+i;

if(s==n)

{

printf("

%ditsfactorsare"

n);

for(i=1;

if((n%i)==0)printf("

%d"

i);

putchar('

\n'

);

}

3.近似求π的值,同时输出最后一位循环精度以及循环次数

inti;

doublej=1,t,s=0;

1/j>

=1e-8;

i=i+2)//此精度可以改

j=i;

//必须要这样做,要把i变为double型才能分之一

if(i%4==1)t=1/j;

elset=-1/j;

s=s+t;

i=i/2+1;

π=%15.14f\n循环精度%15.14f\n循环次数%d\n"

s*4,t,i)

}//我的这个程序(for语句)显然比书上的算法简单

4.输出100到200之间的所有素数

for(n=101;

=200;

n++)//数据范围可以更改

//每次必须将s赋值为0

for(i=2;

i+=2)

if(n%i==0)s=s+i;

if(s==0)printf("

putchar('

5.输入两个数,求其最大公约数与最小公倍数

intm,n,i,t;

%d,%d"

m,&

n);

if(m<

n)

{t=m;

m=n;

n=t;

=n;

{if((n%i==0)&

&

(m%i==0)){t=i;

break;

}}

最大公约数为%d\n"

t);

for(i=m;

;

if((i%n==0)&

(i%m==0))

{t=i;

最小公倍数为%d\n"

6.用二分法求方程的根

doublexa,xb,fa,fb;

for(xa=-10,xb=10;

(xb-xa)>

=1e-15;

)//范围可以改变

fa=2*xa*xa*xa-4*xa*xa+3*xa-6;

//方程可以改变

fb=2*xb*xb*xb-4*xb*xb+2*xb-6;

if((fa+fb)/2<

=0)xa=(xa+xb)/2;

elseif((fa+fb)/2>

0)xb=(xa+xb)/2;

方程的解为x=%f\n"

xa);

6.几个数从小到大排序(用数组)选择法

请输入五个整数:

\n"

inta[5];

//数的个数可以改

inti,j,m;

for(i=0;

5;

scanf("

%d"

a[i]);

for(i=0;

for(j=i+1;

j<

j++)

if(a[j]<

a[i])

{m=a[j];

a[j]=a[i];

a[i]=m;

a[i]);

}//又比老师的程序简单

冒泡法排序

inti,j,m,o;

//定义o简化算法

4;

o=0;

for(j=0;

4-i;

if(a[j]>

a[j+1])

a[j]=a[j+1];

a[j+1]=m;

o++;

if(o==0)break;

7.求矩阵的转制

inta[2][3]={{1,2,3},{4,5,6}};

intb[3][2],i,j;

arraya:

for(i=0;

=1;

for(j=0;

=2;

{printf("

%5d"

a[i][j]);

b[j][i]=a[i][j];

arrayb:

i++)

printf("

b[i][j]);

}//优化讲义上所得

8.用筛选法求10000以内所有素数

inti,j,n,a[10001];

//范围可改

a[1]=0;

for(i=2;

=sqrt(10000);

for(j=2;

j*i<

=10000;

j++)a[j*i]=0;

for(i=1,n=0;

if(a[i]!

=0){printf("

%6d"

n++;

}//用n计数,每十个换行

if(n==10){putchar('

n=0;

9.输出杨辉三角

#defineN10//符号常量N为输出杨辉三角的行数,可一改全改

intmain()//上面的几个可改数字的程序也可以如此做,方便简单

inti,j,a[N+1][N+1];

=N;

a[i][1]=1;

for(j=1;

a[i][j]=1;

for(i=3;

i;

a[i][j]=a[i-1][j-1]+a[i-1][j];

=i;

putchar('

10.得意之作!

打印2014年年历表。

inti,j,k,n=2;

//i月份,j天数,k每月前空格,n列数计数

intm[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

//m数组记每月天数

2014年年历表\n\n"

=12;

switch(i)

case1:

printf("

一月\n"

case2:

二月\n"

case3:

三月\n"

case4:

四月\n"

case5:

五月\n"

case6:

六月\n"

case7:

七月\n"

case8:

八月\n"

case9:

九月\n"

case10:

十月\n"

case11:

十一月\n"

case12:

十二月\n"

\n一二三四五六日\n"

for(k=1;

k<

k++)printf("

"

=m[i];

%3d"

j);

n++;

if(n==7)

{putchar('

\n\n"

}

11.hanoi移盘子问题,运用函数递归,难!

voidmove(charx,chary)

%c-->

%c\n"

x,y);

voidhanoi(intn,chara,charb,charc)

if(n==1)move(a,c);

else

hanoi(n-1,a,c,b);

move(a,c);

hanoi(n-1,b,a,c);

intm;

hanoi问题,将n个盘子从A借助B移动到C。

\n请输入盘子数n:

"

m);

移动方法为:

hanoi(m,'

A'

'

B'

C'

12.函数求最大公约数与最小公倍数

intY(inta,intb)//最大公约数用递归函数的辗转相除法求得

intc,d,x;

c=a/b,d=a%b;

if(d==0)x=b;

elsex=Y(b,d);

returnx;

}

intB(inta,intb)

return(a*b/Y(a,b));

//两数乘积等于其最大公约数与最小公倍数相乘

inta,b;

请输入两个整数:

%d%d"

a,&

b);

最大公约数为%d\n最小公倍数为%d\n"

Y(a,b),B(a,b));

13,用函数求方程的根,判别式的情况都要考虑

voidroot(doublea,doubleb,doublec);

voidroot1(doublea,doubleb,doublec);

voidroot2(doublea,doubleb,doublec);

voidroot3();

doublea,b,c;

%lf%lf%lf"

b,&

c);

root(a,b,c);

voidroot(doublea,doubleb,doublec)

doublex=b*b-4*a*c;

if(x>

0)root1(a,b,c);

elseif(x==0)root2(a,b,c);

elseroot3();

voidroot1(doublea,doubleb,doublec)

doublex=sqrt(b*b-4*a*c);

Therootsis%f,%f\n"

(-b-x)/(2*a),(-b+x)/(2*a));

voidroot2(doublea,doubleb,doublec)

Therootis%f\n"

-b/(2*a));

voidroot3()

无实根\n"

}//并不高级,但是对于练习函数的用法有很大帮助

14.算法:

n个人围成一圈1,2,3报数,报到3退出,问最后剩下的人是原来的第几个?

(经过耗费脑细胞的优化算法,终于得到最简单的程序!

累死!

#definen10

inta[n+1],i,j;

i++)a[i]=1;

for(i=1,j=0;

j!

=3*n;

if(i==n+1)i=1;

=0)j++;

if(j%3==0)a[i]=0;

%d\n"

i-1);

#definet3

=t*n;

if((j%t==0)&

(a[i]!

=0)){a[i]=0;

%3d\n"

15.关于四个学生五门成绩的一些处理(没什么的,只是它长,练习之用,留下以作纪念)。

P29215题

voidaverage1(int(*a)[5]);

voidsearch1(int(*a)[5]);

voidsearch2(int(*a)[5]);

inta[4][5]={{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++)

%4d"

*p);

if(i%5==0)putchar('

average1(a);

search1(a);

search2(a);

intaverage(int*p)

for(inti=1,s=0;

=5;

i++,p++)s=s+*p;

return(s/5);

voidaverage1(int(*a)[5])

=4;

i++,a++)s=s+**a;

average=%d\n"

s/5);

voidsearch1(int(*a)[5])

i++,a++)

for(intj=0,t=0;

j++)if(*(*a+j)<

60)t++;

if(t>

1)

%dfail.\nher/hisscoresis:

i+1);

for(intj=0;

j++)printf("

*(*a+j));

\naveragescore:

average(*a));

voidsearch2(int(*a)[5])

for(intj=0,t1=0,t2=0;

j++)

{

if(*(*a+j)>

=85)t1++;

=95)t2++;

if(t1>

1||t2>

0)printf("

%dwins\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

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

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