北理工C语言上机编程题,c语言上机编程题

北理工c语言编程题 :计算时钟的夹角、求解一元二次方程、分数的四则运算、百马百担、零钱换整钱、找出最大素数······

3 计算时钟的夹角

背景: 钟面上的时针和分针之间的夹角总是在 ~之间 ( 包括 和 ) 。举例来说,在十二点的时候两针之间的夹角为 ,而在六点的时候夹角为 ,在三点的时候为 。本题要解决的是计算 12:00 到 11:59 之间任意一个时间的夹角。 输入: 每组测试数据包含两个数字:第一个数字代表小时 ( 大于 0 小于等于 12) ,第二个数字代表分 ( 在区间 [0, 59] 上 ) 。 输出: 对应每组测试数据,用常用格式显示时间以及

这个时候时针和分针间的最小夹角,精确到小数点后一位。输出格式如下所示。 main() {int Hour,Minate; float Corner; scanf("%d%d",&Hour,&Minate); Corner=30*Hour-5.5*Minate; if(Corner>180) Corner=360-Corner; if(Corner<0) Corner=-Corner; printf("At %d:%02d the angle is %.1f degrees.",Hour,Minate,Corner); } 5 求解一元二次方程 初中的时候我们就会求解一元二次方程了,下面让我

们来教计算机如何求解。输入 a,b,c ,就一元二次方

程 ax²+bx+c=0 的根。

输入:假设 a,b,c均int。

输出:要求输出的根为 double 型,保留 6 位小数。

#include "stdio.h" #include "math.h" main() {int a,b,c,a2; double x1,x2,q; scanf("%d%d%d",&a,&b,&c); q=b*b-4*a*c; a2=2*a; if(a==0) { if(b==0) printf("Input error!\n"); else printf("x=%.6f\n",-c*1.0/b); } elseif(q>0) printf("x1=%.6f\nx2=%.6f\n",(-b+sqrt(q))/a2,(-b-sqrt(q))/a2); else if(q==0)

printf("x1=x2=%.6f\n",-b*1.0/a2); else if(q<0) {if(b==0)

printf("x1=%.6fi\nx2=%.6fi\n",sqrt(-q)/a2,-sqrt(-q)/a2); else

printf("x1=%.6f+%.6fi\nx2=%.6f-%.6fi",-b*1.0/a2,sqrt(-q)/a2,-1.0*b/a2,sqrt(-q)/a2); } }

9 分数的四则运算

在小学时我们就学习了分数的四则运算,即对两个分数进行加、减、乘、除等运算,现在我们尝试下用C语言来实现。 输入:分数1 操作符 分数2 输出:计算结果 要求:计算结果使用分数表示,并且为最简化。例如结果为2/6,则被简化为1/3 #include #include main() { int fm1,fm2,fz1,fz2,FM,FZ,m,n,r;

char ch;

scanf("%d/%d %c %d/%d",&fz1,&fm1,&ch,&fz2,&fm2);

switch(ch) {case '+' :{FM=fm1*fm2,FZ=fz1*fm2+fz2*fm1;}break; case '-' :{FM=fm1*fm2,FZ=fz1*fm2-fz2*fm1;}break; case '*' :{FM=fm1*fm2,FZ=fz1*fz2;}break; default :{FM=fm1*fz2,FZ=fz1*fm2;}break; } if(FZ==0) printf("%d/%d %c %d/%d = 0",fz1,fm1,ch,fz2,fm2); else { m=FM; n=FZ; r=m%n; while(r!=0) {m=n; n=r; r=m%n; } FZ=FZ/n; FM=FM/n; if(FM<0) printf("%d/%d %c %d/%d = %d/%d",fz1,fm1,ch,fz2,fm2,-FZ,-FM); else if(FM==1) printf("%d/%d %c %d/%d = %d",fz1,fm1,ch,fz2,fm2,FZ); else printf("%d/%d %c %d/%d = %d/%d",fz1,fm1,ch,fz2,fm2,FZ,FM); } }

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值