大连理工程序设计第3次上机作业.docx

上传人:b****6 文档编号:7298185 上传时间:2023-01-22 格式:DOCX 页数:10 大小:51.02KB
下载 相关 举报
大连理工程序设计第3次上机作业.docx_第1页
第1页 / 共10页
大连理工程序设计第3次上机作业.docx_第2页
第2页 / 共10页
大连理工程序设计第3次上机作业.docx_第3页
第3页 / 共10页
大连理工程序设计第3次上机作业.docx_第4页
第4页 / 共10页
大连理工程序设计第3次上机作业.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

大连理工程序设计第3次上机作业.docx

《大连理工程序设计第3次上机作业.docx》由会员分享,可在线阅读,更多相关《大连理工程序设计第3次上机作业.docx(10页珍藏版)》请在冰豆网上搜索。

大连理工程序设计第3次上机作业.docx

大连理工程序设计第3次上机作业

1.

题目描述:

编写函数,计算表达式卜戸沁上胡的值(;1三玄此),形参n的值由主程序输入

并传递,函数返回值为s.

题目分析:

主函数用循环语句计算各阶层之和,调用函数factorial^ntx),用循环语句计算每

个阶层。

流程图:

开始

定义n,s,k,m;

用scanf输入n

循环语句计算各阶层之和

调用factorial^ntx)函数

用循环语句计算每个阶层

返回t值

程序代码:

#include<>voidmain()

{

intfactorial(intx);

intn,s,k,m;

s=0;

scanf("%d",&n);

for(k=1;k<=n;k++)

{

m=factorial(k);s+=m;

}

printf("%d\n",s);

intfactorial(intx)

{

intt,i;

t=1;

for(i=1;i<=x;i++)

t*=i;

return(t);

}

程序截屏:

其加密方法为:

(1)将该数每一位上的数字加9,然后除以10取余,作为该位上的新数字,

(2).将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。

题目分析:

主函数输入n,并打出结果。

调用intencrypt(intn)函数,在intencrypt(intn)函数里用公式将原密码加密,并返回加密后的值。

流程图:

开始

定义a,b;

用scanf输入a

调用intencrypt(intn)函数

factorial(intx)函数

用公式将原密码加密

返回n值

主函数用printf打出结果

结束

程序代码:

#include<>

voidmain()

{

intencrypt(intn);

inta,b;

scanf("%d",&a);

b=encrypt(a);

printf("Theencryptednumberis%d\n”,b);

}

intencrypt(intn)

inti,j,p,q;

i=n%10;

j=n%100/10;

p=n%1000/100;

q=n/1000;

i=(i+9)%10;

j=(j+9)%10;

p=(p+9)%10;

q=(q+9)%10;

n=j*1000+i*100+q*10+p;returnn;

}

S3

程序截屏:

*T:

'-ProgramFIf趴!

/licro丹ftVsualic\MyProjbug\2eifp

1257

Theenci'iiptedflunheris4601

Pressaflsikeytocontim.ie

题目描述:

编写数字加密函数intdecrypt(intn),其输入为一个使用encrypt函数加密后

的四位数,返回为解密后的数。

题目分析:

主函数输入n,并打出结果。

调用intdecrypt(intn)函数,在intdecrypt(intn)函数里用公式将原密码解密,并返回解密后的值。

流程图:

开始

定义a,b;

用scanf输入a

调用intencrypt(intn)函数

factorial(intx)函数

用公式将原密码解密

返回n值

主函数用printf打出结果

结束

程序代码:

#include<>

voidmain()

{

intdecrypt(intn);

inta,b;

scanf("%d",&a);

b=decrypt(a);

printf("Thedecryptednumberis%d\n”,b);

}

intdecrypt(intn)

inti,j,p,q;

i=n%10;

j=n%100/10;

p=n%1000/100;

q=n/1000;

i=i+10-9;

j=j+10-9;

p=p+10-9;

q=q+10-9;

n=j*1000+i*100+q*10+p;

returnn;

}

程序截屏:

3.

题目描述:

钟面上的时针和分针之间的夹角随着时间的不同而变化。

举例来说,在十二点的

时候两针之间的夹角为0,而在六点的时候夹角为180度(时针和分针有两个夹角,其中较小的为准)。

本题首先要编写函数来计算12:

00到11:

59之间任意一个时间的时针和分针的夹角,并

利用此函数算出在什么时间二者的夹角达到最大(精确到分钟)。

计算夹角的函数angle(inth,intm)有两个输入,第一个数字代表小时(大于0小于等于

12),第二个数字代表分(在区间[0,59]上)。

其输出为该时刻时针和分针间的最小夹

角。

题目分析:

主函数为时间的输入,并进行循环,循环直到输出最大角度。

调用angle(inth,int

m)函数,运用公式计算角度,返回值到主函数。

最后输出结果。

流程图:

开始

定义a,b,t;

用for循环内嵌for循环

调用angle(inth,intm)函数

用公式计算角度

返回t值

主函数用printf打出结果

结束

程序代码:

#include<>

main()

{

intangle(inth,intm);

inta=1,b=0,t;

 

for(a=12;a>=1;a--)

{

for(b=0;b<=59;b++)

{

t=angle(a,b);

if(t==180)

gotoA;

}

}

A:

printf("时针和分针在:

%d:

%d时夹角最大,其夹角为:

%d\n",a,b,t);

}

angle(inth,intm)

{

intt;

t=h*30+m/2-m*6;

if(t<0)

t=0-t;

else

{

if(t>180)

t=360-t;

}

return(t);

程序截屏:

E云

4.

题目描述:

在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,要求用C语言编写4个分数的函数来实现四则运算。

题目分析:

先用scanf输入运算式,再用switch函数根据符号的不同计算不同结果。

最后再想办法将结果化简。

流程图:

开始

定义a,b,c,d,x,y,i,p,q,op

用print输入分数运算式

用switch语句列不同表达式

在不同情况里求解不

同x,y

用if,while语句化简结果

用printf打出结果

 

程序代码:

#include<>voidmain()

{

inta,b,c,d,x,y,i,p,q;

charop;

printf("输入分数运算式:

");

A:

scanf("%d/%d%c%d/%d",&a,&b,&op,&c,&d);

if(b==0||d==0)

{

printf("分母不能为0,请重新输入:

");gotoA;

}

switch(op)

{case'+':

x=a*d+c*b;y=b*d;break;

case'-':

x=a*d-c*b;y=b*d;break;

case'*':

x=a*c;y=b*d;break;

case'/':

x=a*d;y=b*c;break;

}

if(x>y)

{p=x;q=y;}

else

{p=y;q=x;}

while(q!

=0)

{i=p%q;

p=q;

q=i;

}

x=x/p;y=y/p;

printf("%d/%d%c%d/%d=%d/%d\n",a,b,op,c,d,x,y);

}

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

当前位置:首页 > IT计算机 > 互联网

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

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