【C语言答案】第二次练习--输入输出条件判断

以下题目是由老师布置的《 谭浩强C程序设计(第四版)》的oj练习题,感谢老师的辛苦付出~
使用软件是Devc++5.11。

抄了作业记得点个赞谢谢!!网课也要加油学a


一共有五道题~~~


A. C语言_ex02_01

加粗样式行时间限制: 1000 运行内存限制: 65536

题目描述
输入只有一行,依次为整数a、操作符op、和整数b,a、op、b中间有一个空格分隔。其中-10000<a,b<10000,操作符op为“+”、“-”、“*”、“/”、和“%”之一。

输出也只有一行,为a、b两个数通过op的计算结果。比如,输入为“1 + 2”,则计算1和2的和并输出“1 + 2 = 3”。
注意:当操作符op为“/”或“%”,且b为0时,算式无效,此时,程序输出一个单词:Invalid

输入样例
1 + 2
输出样例
1 + 2 = 3

注意:符号与数之间有一个空格

#include<stdio.h>

int main()
{
	int a,b;
	char op;
	scanf("%d %c %d",&a,&op,&b);//scanf才用加这个 &
	if (op=='+')//两个等于号是=,一个等于号是赋值 
	printf ("%d + %d = %d",a,b,a+b);
	if (op=='*')
	printf("%d * %d = %d",a,b,a*b) ;
	if (op=='-')
	printf("%d - %d = %d",a,b,a-b) ;
	if (op=='/')
	{ 
	if (b==0)
	printf("Invalid") ;
	else printf("%d / %d = %d",a,b,a/b);
	} //两个if要用大括号 
	if (op=='%')
	{if (b==0)
	printf("Invalid") ;
	else printf("%d %% %d = %d",a,b,a%b);//百分号要用两个表示 
	} 
	
}

B. C语言_ex02_02

运行时间限制: 1000 运行内存限制: 65536

题目描述
输入为两个用空格分隔的正整数year和month,它们分别代表年份和月份。输入保证合法,用int型存储即可。
输出为year年month月的天数。

输入样例
2018 3
输出样例
31

要先知道怎么判断闰年,能被4但是不能被100整除。和能被400整除的年份是闰年。

#include<stdio.h>

int main()
{
	int year, month;		//能被四不能被100整除的是闰年、能被400整除的是闰年。
	scanf("%d %d",&year,&month);
	
//	if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
//		printf("31");//也可以这样写哦,我自己想练一下switch的用法 

	switch(month)
	{
		case 1:;
		case 3:;
		case 5:;
		case 7:;
		case 8:;
		case 10:;
		case 12:	printf("31");
		default:  break;
	}

	switch(month)
	{
		case 4:;
		case 6:;
		case 9:;
		case 11:	printf("30");
		default:
         break;
	}
	if(month==2)				//如果他是二月份再判断
	{
		if(year%4==0&&year%100!=0)//是闰年的一种情况(能被四不能被100整除)
			printf("29");
			else	
		if(year%400==0)			//另一种情况(能被400整除 ) 
			printf("29");	
//if((year%4==0&&year%100!=0)||(year%400==0))
//	printf("29");
		else 
			printf("28");
	}
	return 0;  
}

C. C语言_ex02_03

运行时间限制: 1000 运行内存限制: 65536

题目描述
输入只有一行,为用空格分隔的5个整数,这5个整数均大于-10000,小于10000。
输出为这5个数的最大值。

输入样例
2 4 6 7 8
输出样例
8

#include<stdio.h>
int main()
{
int a,b,c,d,e,max;
scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);
max=a;
if(max<b)
max=b;
if(max<c)
max=c;
if(max<d)
max=d;
if(max<e)
max=e;
printf("%d",max);
return 0;
}
//就是一个个比过去的!

D. C语言_ex02_04

运行时间限制: 1000 运行内存限制: 65536

题目描述(前面一堆废话…)
摄氏温度(Celsius temperature)一种使用广泛的温度。历史上它是摄氏温标所定义的温度。现在摄氏温标已废弃不用,摄氏温度有了新的定义。但在数值上,它与过去人们习惯使用的摄氏温标温度很相近。摄氏温度的规定 把在标准大气压下冰水混合物的温度定为0摄氏度,沸水的温度定为100摄氏度,0摄氏度和100摄氏度中间分为100个等分,每个等分代表1摄氏度。
摄氏温标是A.摄尔修斯在1742年首先提出的一种经验温标,过去曾广泛使用过。摄氏温标以水沸点(标准大气压下水和水蒸气之间的平衡温度)为100度和冰点(标准大气压下冰和被空气饱和的水之间的平衡温度)为零度作为温标的两个固定点。摄氏温标采用玻璃汞温度计作为内插仪器,假定温度和汞柱的高度成正比,即把水沸点与冰点之间的汞柱的高度差等分为100格,1格对应于1度。随着测温技术的发展,人们早就不使用玻璃汞温度计作为定义温标的内插仪器了。但是后来仍有人把水沸点为 100度、冰点为零度的温标都称为摄氏温标。1954年第10届国际计量大会决定采用水三相点一个固定点来定义温度的单位,冰点已不再是温标的定义固定点了。因此,“摄氏温标”这一术语也就不应再继续使用了。
华氏度(Fahrenheit)是用来计量温度的单位,符号℉。包括我国在内的世界上绝大多数国家都使用摄氏度;世界上仅存5个国家使用华氏度,包括巴哈马、伯利兹、英属开曼群岛、帕劳、美利坚合众国及其他附属领土(波多黎各、关岛、美属维京群岛)。
华氏度(°F)是温度的一种度量单位,以其发明者德国人华伦海特(Gabriel D. Fahrenheit,1686—1736)命名的。1714年他发现液体金属水银比酒精更适宜制造温度计,以水银为测温介质,发明了玻璃水银温度计,选取氯化铵和冰水的混合物的冰点温度为温度计的零度,人体温度为温度计的100度。在标准大气压下,冰的熔点为32℉,水的沸点为212℉,中间有180等分,每等分为华氏1度,记作“1℉”。
“华氏温标”是经验温标之一。在美国的日常生活中,多采用这种温标,用字母“℉”表示。
摄氏温度(℃)和华氏温度(℉)之间的换算关系为:
华氏度=摄氏度×1.8+32 或 华氏度=摄氏度×9/5+32
摄氏度=(华氏度-32)÷1.8
现请你写一段摄氏温度与华氏温度转换的程序。
输入格式
共一样,为一个浮点数f和一个字符c,两者之间由一个空格分隔。其中-10000<f<10000,c只可能是”C”或”F”。
输出格式
只有一行,如果输入的温度低于零下273.15摄氏度时,直接输出Invalid。否则输出该温度。要求,如果输入的是摄氏度则转换为华氏度,如果输入的为华氏度,转换为摄氏度。数值保留2位小数,同时在数值后输出温度单位(”C”或”F”)。具体格式见输出样例。

输入样例
0 C
输出样例
32.00 F

注意:单位前边有一个空格

#include<stdio.h>
int main()
{
	float f,g;
	char c,d;
	scanf("%f %c",&f,&c);
	
	if(c=='C')
	{
		if(f+273.15<0)
		{
			printf("Invalid");
			return 0;//它写在这里,让程序提前结束,最后那里写不写都行。
		}
		else
		{
			d='F';
			g=f*1.8+32;
			
		}
	}
	if(c=='F')
	{
			g=(f-32)/1.8;
			d='C';
			
			if(g+273.15<0)
			{
				printf("Invalid");
				return 0;
			}	
	}
	
	
	printf("%.2f %c",g,d);
 } 

E. C语言_ex02_05

运行时间限制: 1000 运行内存限制: 65536

题目描述
输入只有一行,为三个用空格分隔的浮点数a,b,c(0<a,b,c<100)
输出也只有一行,如果 a - b 等于c ,则输出yes,否则输出no。

输入样例
3.4 2.2 1.3
输出样例
no

#include<stdio.h>
int main()
{
	float a,b,c;
	scanf("%f %f %f",&a,&b,&c);
	if(a-b-c<1e-1&&a-b-c>-1e-1)
	printf("yes");
	else
		printf("no");
	
 } 
  • 30
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值