OJ实验(5)

更新时间:2024-06-10 04:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验(5)

1224 Problem A: 编写函数:求三个整数的最大值

(Append Code)

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 5056 Solved: 2457 [Submit][Status][Web Board]

Description

求三个整数的最大值。

----------------------------------------------------------------------------- 编写一个函数maxValue()求三个整数的最大值。其原型为: int maxValue(int a,int b,int c);

功能:函数的三个参数传入a,b,c的值,返回其中最大值。 函数的调用格式见“Append Code”。

Input

输入三个int类型的整数,两两之间用空格隔开。

Output

输出三个整数的最大值。

Sample Input

1 2 3

Sample Output

3

HINT

参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。

Append Code

append.c, append.cc,

#include

int maxValue(int x,int y,int z) {

int m; if(x>y) {

m=x; x=y; y=m; }

if(y>z) {

m=y; y=z; z=m; }

return z; }

int main() {

int x, y, z;

scanf(\ printf(\ return 0; }

1146 Problem B: 编写函数:计算分段函数 (Append

Code)

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 5835 Solved: 2636 [Submit][Status][Web Board]

Description

设有函数y=f(x)定义为:

给定x的值,编程求出y的值并输出。

----------------------------------------------------------------------------- 编写函数func()和output(),其原型为: double func(double x); 功能:计算f(x)并返回。 int output(int n, double x) 功能:按照题意的格式输出。 函数的调用格式见“Append Code”。

Input

输入的第一个是测试样例数N,后跟N个输入为x的值。

Output

输出为N行,每行顺序与输入对应的y=f(x)的计算结果,即y的值。输出时y值保留6位小数,且不输出无意义的0。 每行的格式为: case i:y=?.

其中i表示测试用例编号(从1开始),?表示计算结果。

Sample Input

4 -3 0.5 2.1 10.08

Sample Output

case 1:y=3.

case 2:y=0.841471. case 3:y=3.37061. case 4:y=30.16.

HINT

参看系统首页上的“Append Code”使用说明,讨论版(Web Board)上也有。

Append Code

append.c, append.cc,

#include #include double func(double x) {

if(x<0) {

return -x; }

else if(x>=0&&x<1) {

return sin(2*x); }

else if(x>=1&&x<5) {

return sqrt(x*x*x+x); } else {

return 2*x+10; } }

int output(int n, double x) {

printf(\}

int main() {

int i, cases; double x;

scanf(\

for(i = 1; i <= cases; i++) {

scanf(\ output(i, func(x)); }

return 0; }

1244 Problem C: 几点几分几秒

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 3385 Solved: 1817 [Submit][Status][Web Board]

Description

一天24小时,每小时60分钟,每分钟60秒。一天共有86400秒。 0点0分0秒是每天的第1秒; 0点0分1秒是每天的第2秒;

0点1分0秒是每天的第61秒; 1点0分0秒是每天的第3601秒; 23点59分59秒是每天的第86400秒。

你的任务是编写一个程序,把每天的第n秒转换成具体的24小时制时间(从00:00:00到23:59:59)。

Input

输入为若干整数n,表示每天的第n秒,1<=n<=86400,当输入n为0时表示输入结束。

Output

每行输出一个第n秒对应的具体时间,格式为“hh:mm:ss”。时、分、秒各占2位,不足两位要补0,如0点0分0秒为“00:00:00”。

Sample Input

1 2 61 3600 9999 86400 0

Sample Output

00:00:00 00:00:01 00:01:00 00:59:59 02:46:38 23:59:59

#include int main() {

int n,a,b,c; for(;;) {

scanf(\

}

if(n==0) {

break; } n=n-1; a=n/3600;

b=(n600)/60; c=n-3600*a-60*b;

printf(\}

1455 Problem D: 一天中的第几秒

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 2085 Solved: 1429 [Submit][Status][Web Board]

Description

一天24小时,每小时60分钟,每分钟60秒。一天共有86400秒。 0点0分0秒是每天的第1秒; 0点0分1秒是每天的第2秒; 0点1分0秒是每天的第61秒; 1点0分0秒是每天的第3601秒; 23点59分59秒是每天的第86400秒。

你的任务是编写一个程序,计算出一个24小时制的时间(从00:00:00到23:59:59)是这一天的第几秒?

Input

每行输入24小时制的时间,至EOF结束。

时间的格式为“hh:mm:ss”,时、分、秒各占2位,不足两位的有前缀0,如0点0分0秒为“00:00:00”。

输入的时间均满足0<=hh<23,0<=mm,ss<=59。

Output

每行输出为对应输入行的计算结果,仅为一个整数n,表示输入的时间是这一天的第n秒。

Sample Input

00:00:00 00:00:01 00:01:00 00:59:59 02:46:38 23:59:59

Sample Output

1 2 61 3600 9999 86400

#include int main() {

int a,b,c,n;

while(scanf(\ {n=a*3600+b*60+c+1; printf(\ } }

1098 Problem E: 序数的后缀

Time Limit: 1 Sec Memory Limit: 2 MB

Submit: 4244 Solved: 2289 [Submit][Status][Web Board]

Description

英文中经常用阿拉伯数字加上字母后缀表示“第几“这样的序数词。比如,”第10次会面“通常写成”10th meeting“。

后缀来源于英文的序数词:第1的英文是first,写成”1st?;第2的英文是second,写成“2nd”;第3的英文是third,写成“3rd”,第4是fourth,写成“4th”,以后的数字都加“th”。 在这里规定,所有后缀为1的数字都写成“st”结尾,后缀为2的数字写成“nd”结尾,后缀为3的英文写成“rd”结尾,其他的写成“th”结尾。

Input

输入为多个很小的正整数,当输入为0时表示输入结束。

Output

输出为多行,每行对应一个输入数字的序数表示。

Sample Input

1 2 3 4 5 10 11 12 13 14 0

Sample Output

1st 2nd 3rd 4th 5th 10th 11st 12nd 13rd 14th

HINT

用switch语句似乎更容易些。

#include int main() {int n,m; for(;;) {

scanf(\if(n==0) {

break; } if(n<=10) {

if(n==1) {

}

}

printf(\ }

else if(n==2) {

printf(\ }

else if(n==3) {

printf(\ }

else printf(\} else {

m=n; if(m==1) {

printf(\ }

else if(m==2) {

printf(\ }

else if(m==3) {

printf(\ }

else printf(\}

1096 Problem F: Print Graphics Problerm (II)

Time Limit: 1 Sec Memory Limit: 16 MB

Submit: 4797 Solved: 1889 [Submit][Status][Web Board]

Description

向标准输出上打印一些用ASCII字符组成的图形。

Input

输入为多个整数n,0

Output

若n为偶数,则输出一个正向的n层等腰三角形;n为奇数,则输出一个倒向的n层等腰三角形。三角形由“+”组成。任意两个图形之间有一个空行分隔,格式见sample。

Sample Input

5 4 0

Sample Output

+++++++++ +++++++ +++++ +++ + + +++ +++++ +++++++

#include int main()

{

int n,a,b,c=1,i,j,k,d,e=0; for(;;) {

scanf(\ b=n-1; d=2*n-1; if(n==0) {

break; }

if(n%2==0) {

for(i=1;i<=n;i++) {

for(j=0;j

printf(\ }

for(j=0;j

printf(\ }

printf(\ c+=2; b--; } }

if(n%2!=0&&n!=0) {

for(i=1;i<=n;i++) {

for(j=0;j

printf(\ }

for(j=0;j

printf(\ }

printf(\ e++; d-=2; }

}

}

}

printf(\c=1; e=0;

本文来源:https://www.bwwdw.com/article/r9b6.html

Top