hduOJ(2003-2006)

2003 求绝对值

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Problem Description

求实数的绝对值。

Input

输入数据有多组,每组占一行,每行包含一个实数。

Output

对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。

Sample Intput

123
-234.00

Sample Output

123.00
234.00

Submit
#include<stdio.h>
#include<math.h>

int main()
{
	double a ,b;
	while(scanf("%lf", &a) != EOF)
	{
		b = fabs(a);
		printf("%.2lf\n", b);
	}
	return 0;
}

2004 成绩转换

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Problem Description

输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;

Intput

输入数据有多组,每组占一行,由一个整数组成。

Output

对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。

Sample Intput

56
67
100
123

Sample Output

E
D
A
Score is error!

Submit
#include<stdio.h>

int main()
{
	double grade;
	while(~scanf("%lf", &grade))
	{
		if(grade < 0 || grade > 100)
			printf("Score is error!\n");
		else if(grade >= 0 && grade < 60)
			printf("E\n");
		else if(grade >= 60 && grade < 70)
			printf("D\n");
		else if(grade >= 70 && grade < 80)
			printf("C\n");
		else if(grade >= 80 && grade < 90)
			printf("B\n");
		else if(grade >= 90 && grade <= 100)
			printf("A\n");
	}
	return 0;	
}

2005 第几天?

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Problem Description

给定一个日期,输出这个日期是该年的第几天。

Intput

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。

Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input

1985/1/20
2006/3/12

Sample Output

20
71

Submit
#include<stdio.h>

int is_rui(int year)
{
	if(year % 4 == 0 && year % 100 != 0)
		return 1;
	else if(year % 400 == 0)
		return 1;
	else
		return 0;
}

int days(int year, int month)
{
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			return 31;
			break;
		case 2:
			if(is_rui(year)) return 29;
			else return 28;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			return 30;
			break;
		default:
			return -1; 
	}
}

int main()
{
	int year, month, day;
	int i;
	while(~scanf("%d/%d/%d", &year, &month, &day))
	{
		int count = 0; 
		for(i = 1; i < month; ++i)
		{
			count += days(year, i);
		}
		count += day;
		printf("%d\n", count);
	}
	return 0;
 } 

2006 求奇数的乘积

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)

Problem Description

给你n个整数,求他们中所有奇数的乘积。

Intput

输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。

Output

输出每组数中的所有奇数的乘积,对于测试实例,输出一行。

Sample Intput

3 1 2 3
4 2 3 4 5

Sample Output

3
15

submit
#include<stdio.h>

int main()
{
	int n, a;
	while(~scanf("%d", &n)){
		int count = 1;
		while(n--){
			scanf("%d", &a);
			if(a % 2 == 1)
				count = count * a;
		}
		printf("%d\n", count);
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值