程序设计实验第二周

A. 计算两时间的差值(顺序、选择)时间限制1s内存限制128MB题目描述给定两个时间,计算两个时间的差值。输入给定的第一个时间一定比第二个时间大输出

#include <stdio.h>
int main ()
{
	int a,b,c,d,e,f;
	int g,h,i;
	scanf("%d:%d:%d",&a,&b,&c);
	scanf("%d:%d:%d\n",&d,&e,&f);
		g=((a*3600+b*60+c)-(d*3600+e*60+f))/3600;
		h=(((a*3600+b*60+c)-(d*3600+e*60+f))-g*3600)/60; 
		i=((a*3600+b*60+c)-(d*3600+e*60+f))%60;
	printf("%d:%d:%d\n",g,h,i);
	return 0; 
}

B. 晶晶赴约会(顺序或选择)

晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课,请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。

输入

输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期日。

输出

输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。注意YES和NO都是大写字母!

#include <stdio.h>
int main()
{
	int a;
	scanf("%d",&a);
	if (a%2==0)
	printf("YES");
	else
	printf("NO");
	return 0;
 }

C. 判断字母(选择)

输入一个字符,判定该字符是否是字母。

(提示:可使用ctype.h中的函数)

输入

字符

输出

若该字符是字母,输出ALPHA; 否则,输出NO

#include <stdio.h>
#include <ctype.h>
int main()
{
	char ch1;
	scanf ("%c",&ch1);
	if (65<=ch1&&ch1<=122)
	printf("ALPHA\n");
	else
	printf("NO\n");
	return 0;
 }

D. 圆规来袭

现在台风接连来袭,不喜欢学习的大学生张三,希望通过台风放假,但是很不幸,台风中心并没有经过深圳,但是他还是不死心。张三画出一下台风路径图,只要台风覆盖到深圳它就可以放假

黑色直线是台风路径

蓝色直线是深圳到台风路径的垂直距离其中S是垂直点

红色圆圈是台风影响范围,绿色是半径r,C是圆心。

已知台风移动速度是v m/s

|SC|直接距离是dist

问你张三是否可以成功放假

如果不可以输出"sad"

如果可以放假则输出多少秒后放假(答案保留两位小数)

输入

一行输入4个整数h, r, v, dist.

输出

输出结果

#include<stdio.h>
#include<math.h>
int main()
{
	int h,r,v,dist;
	float t;
	scanf("%d%d%d%d",&h,&r,&v,&dist);
	t=(dist-sqrt(r*r-h*h))/v;
	if(r*r<h*h)
	printf("sad\n");
	else
	{
		if(r*r>=h*h+dist*dist)
		printf("0.00\n");
		else
		printf("%.2f",t);
	}
	return 0;
}

A. 一元二次方程的两个实根求解(顺序)

输入一元二次方程ax^2+bx+c=0的系数a、b、c。

假设输入始终满足b^2-4ac>0且a不等于0,计算并输出该方程的两个实根。

C语言中计算非负实数的平方根函数: double sqrt(double);

头文件:math.h。

输入

一元二次方程的系数a、b、c

输出

ax^2+bx+c=0的两个实根

#include<stdio.h>
#include<math.h>
int main()
{
	float a,b,c;
	float x1,x2;
	scanf("%f%f%f",&a,&b,&c);
	x1=(-b+sqrt(b*b-4*a*c))/(2*a);
	x2=(-b-sqrt(b*b-4*a*c))/(2*a);
	printf("x1=%.2f x2=%.2f",x1,x2);
	return 0;
}

B. 判定水仙花数1(选择)

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数。水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身,例如:

输入一个三位数,判定其是否水仙花数。

输入

一个三位数

输出

输出0或1,0表示不是水仙花数,1表示是水仙花数。

C. 求三个数中的最大值

编写一个程序,输入a、b、c三个值,输出其中最大值。

输入

一行数组,分别为a b c

输出

a b c其中最大的数

#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a>b&&a>c)
	printf("%d",a);
	else
	{
		if(b>c)
		printf("%d",b);
		else
		printf("%d",c);
	}
	return 0;
}

D. 字符判断(选择)

输入一个字符,如果它是大写字母,就输出“upper”,如果它是小写字母,就输出“lower”,如果它是数字字符,就输出"digit",如果它是其他字符,就输出“others”。

输入

一个字符

输出

字符的类别

#include<stdio.h>
int main()
{
	char ch;
	scanf("%c",&ch);
	if(ch>=65&&ch<=90)
	printf("upper\n");
	else if(ch>=97&&ch<=122)
	printf("lower\n");
	else if(ch>=48&&ch<=57)
	printf("digit\n");
	else
	printf("others\n");
	return 0;
}

E. 计算邮资(选择)

根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克), 基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。

输入

输入一行,包含整数和一个字符,以一个空格分开,分别表示重量(单位为克)和是否加急。如果字符是y,说明选择加急;如果字符是n,说明不加急。

输出

输出一行,包含一个整数,表示邮费。

#include<stdio.h>
int main()
{
	int m,a,l,k;
	char ch;
	scanf("%d %c",&m,&ch);
	if(m<=1000)
	printf ("8\n");
	else
	{
	l=(m-1000)%500;
	if(l=0)
	a=8+4*((m-1000)/500);
	else
	a=8+4*((m-1000)/500+1);
	if(ch=='y')
	k=a+5;
	else if(ch=='n')
	k=a;
	printf("%d",k) ;
	}
	return 0;
}

F. 三角形判断(选择)

输入三角形三条边的长度a、b、c,判断它们分别能构成什么形状的三角形:普通三角形、等边三角形、等腰三角形、等腰直角三角形。

(提示:判断两个浮点数a、b相等,可以使用fabs(a-b)<0.001 )

输入

三条边的长度

输出

三角形类型的名称;如果不能构成三角形,就输出“非三角形”

G. 算术式子判断(选择)

用户输入一个算术运算的式子,运算包括了+、-、*、/、%,首先输出该式子,如果运算符不在这5种操作内,输出运算符错误的信息;如果式子是正确的,输出式子正确的相应信息;如果式子是错误的,输出式子错误的相应信息。例如:

输入:1+2=3

输出:1+2=3 correct

输入:2/3=8

输出:2/3=8 wrong

输入:6&7=12

输出:6&7=12 error op

输入

一个算术式子

输出

该式子以及对错信息

#include <stdio.h>
int main()
{
	int a,b,c;
	char d,e;
	scanf("%d%c%d%c%d",&a,&d,&b,&e,&c);
	if((d!='+')&&(d!='-')&&(d!='*')&&(d!='/')&&(d!='%'))
	printf("%d%c%d%c%d error op",a,d,b,e,c);
	else
	{
		if((d=='+')&&(e=='=')&&(c==a+b))
		printf("%d%c%d%c%d correct",a,d,b,e,c);
		else if((d=='-')&&(e=='=')&&(c==a-b))
		printf("%d%c%d%c%d correct",a,d,b,e,c);
		else if((d=='*')&&(e=='=')&&(c==a*b))
		printf("%d%c%d%c%d correct",a,d,b,e,c);
		else if((d=='/')&&(e=='=')&&(c==a/b))
		printf("%d%c%d%c%d correct",a,d,b,e,c);
		else if((d=='%')&&(e=='=')&&(c==a%b))
		printf("%d%c%d%c%d correct",a,d,b,e,c);
		else
		printf("%d%c%d%c%d wrong",a,d,b,e,c);
	}
	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值