hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b

本文主要是介绍hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hdoj上一道有意思的题目,题目:

人见人爱a+b

敲的也蛮快的,大概十分钟左右就AC了。代码如下:

人见人爱a+b

#include

int main()

{

int n,i,j,a1,a2,a3,b1,b2,b3,c1=0,c2=0,c3=0;//c1记录小时,c2记录分钟,c3记录秒;

scanf("%d",&n);

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

{

scanf("%d%d%d%d%d%d",&a1,&a2,&a3,&b1,&b2,&b3);

c3=a3+b3;

if(c3>=60)

{

c3=c3-60;

c2++;//分钟+1;

}

c2=c2+a2+b2;

if(c2>=60)

{

c2=c2-60;

c1++;//小时+1;

}

c1=c1+a1+b1;

printf("%d %d %d\n",c1,c2,c3);

c1=0;

c2=0;

c3=0;

}

return 0;

}

bfb7ec7214ef0e7efa88c3b80969b592.png

这题蛮有意思的,与往常的a+b题目不同,这里的a和b有一定的范围,它和时间计数的小时分钟秒类似,其中的分钟和秒的具体范围是0-60,于是相加以后就要判断有没有超出范围,有的话小时+1或者分钟+1。

回顾之前的面向对象程序设计课第二次作业,其题目也是不走寻常路,我在之前的博客也记录了它:程序设计第二次作业

这里来说说A+B*C和A+B/C的情况。

一、A+B*C

要求:输入均为整数,数值范围在(-1000000,1000000)之间。

代码如下:

#include

int main()

{

int a, b,c,n;

scanf("%d %d %d",&a,&b,&c);

n=a+b*c;

if(n<0)

{

printf("-");//输出“-”号

n=-n;//取其绝对值

}

if(n<1000) printf("%d\n",n );

else if(n<1000000) printf("%d,%03d\n",n/1000,n%1000 );

else printf("%d,%03d,%03d\n",n/1000000,n%1000000/1000,n%1000 );//判断n的范围,用0补充位数

return 0;

}

A+B*C的做法与第二次作业的做法类似,用n来记录a+b*c的值,首先取其绝对值,如果是负数输出-号;再进行范围判断,通过%03d来补充位数。

二、A+B/C

要求:输入均为整数,数值范围在(-1000000,1000000)之间。保留两位小数。

代码如下:

#include

int main()

{

int a,b,c,intn=0,intp=0;

double dout=0,doum=0;

scanf("%d%d%d",&a,&b,&c);

intn=a+b*1.0/c;//n is int; mistake: b*1.0/c;

dout=a+b*1.0/c;//t is double; mistake: b*1.0/c;

doum=dout-intn;//doum : decimal

intp=doum*100;//intp : (int)decimal*100

if(intp<0)intp=-intp;// |intp|;

if(intn<0)

{

printf("-");

intn=-intn;

}

if(intn<1000) printf("%d",intn );

else if(intn<1000000) printf("%d,%03d",intn/1000,intn%1000 );

else printf("%d,%03d,%03d",intn/1000000,intn%1000000/1000,intn%1000 );

printf(".%02d",intp);//print the part of decimal

return 0;

}

//-10 1 3

//-10 1 4

//-1000000 1 3

//1000000 1 4

//-1000 9 1

要求二相对要求一和之前的题目来说更难一些,我简单的阐述一下我的思路:

我定义整形变量intn和intp,intn来存储a+b/c的整数部分,intp来存储a+b/c的小数*100,也就是说我输出的时候,整数部分交由之前的方法处理,输出整数部分以后输出.和intp的绝对值。

取小数部分的做法:我先用一个int变量intn存储a+b/c的值,再用double类型的变量dout存储a+b/c的值,用两个值作差来得到小数部分,用double类型的doum来存储,最后intp把doum*100存储(相当于小数点后两位的数字)。

还有一个注意点是,最后我输出的格式:printf(".%02d",intp);用0补充位数。

遇到的问题:

b81e7c15200e3dfab2b0f7551d42a752.png

在之前的代码里,我在给intn赋值的语句是:intn=a+b/c,这这导致b/c的计算结果是0,而不是我想要的0.33。

改进:intn=a+b*1.0/c

通过这一类型的题目,让我巩固了一些遗漏的知识点。a+b看似很简单,但是其中的题目还是隐藏着“杀机”。

2016/2/26

程序设计第二次作业&lt&semi;1&gt&semi;

面向对象程序设计第二次作业<1> Github 链接:https://github.com/Wasdns/object-oriented 题目: <1>第一次尝试 我立马认识到 ...

C语言程序设计第二次作业--顺序结构

C语言程序设计第二次作业--顺序结构 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include

面向对象程序设计 第二次作业&lt&semi;1&gt&semi;

Github链接:https://github.com/zora02/object-oriented/tree/master/1001.A%2BB%20Format%20(20) 一.解题 题目 解题 ...

C语言程序设计第二次作业——顺序结构

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. 错误信息1: 错误原因:i和d位置错误 改正方法:i和d位置互换 错误信息2: 错误原因:\n后缺了一个" 改正方法:\n后加一个 ...

C语言程序设计第二次作业—————顺序结构改

1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 #include int mian() { ...

C语言程序设计第二次作业1

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业0

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业—————顺序结构

(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...

C语言程序设计第二次作业

一.学习内容 掌握关系运算符.逻辑运算符.条件运算符 掌握常用数学函数的用法 if语句(单分支,双分支和多分支) 用switch语句实现多分支 理解多个if语句,if...else if... 和if ...

随机推荐

expdp 报The value &lpar;30&rpar; of MAXTRANS parameter ignored错误的原因诊断

在使用expdp导出一个表的数据时遇到了下面情况,也不见其提示报错信息,一下子就执行完了,也没有导出我需要的数据 [oracle@getlnx01 dump_dir]$ expdp system/xx ...

javascript里的封装

用javascript闭包的特性,可以模拟实现私有变量.私有方法. var myObject = =(function(){ var privateValue; function privateMet ...

修改emlog表字段名称

在em_twitter表中增加一个字段. ,添加一个字段isImportant alter table em_twitter add isImprotant ) not ; ,把字段isImprota ...

HDU5772 String problem(最大权闭合子图)

题目..说了很多东西 官方题解是这么说的: 首先将点分为3类 第一类:Pij 表示第i个点和第j个点组合的点,那么Pij的权值等于w[i][j]+w[j][i](表示得分) 第二类:原串中的n个点每个 ...

扩展 IEnumerable&lt&semi;T&gt&semi;,让它根据另一个集合的顺序来排列

假如我有两个集合: public class Teacher { public int Id { get; set; } public string Name { get; set; } } publ ...

ylbtech-Unitity-CS&colon;Hello world

ylbtech-Unitity-CS:Hello world 1.A,效果图返回顶部   1.B,源代码返回顶部 1.B.1,Hello1.cs public class Hello1 { publi ...

codeforces&num;253 D - Andrey and Problem里的数学知识

这道题是这种,给主人公一堆事件的成功概率,他仅仅想恰好成功一件. 于是,问题来了,他要选择哪些事件去做,才干使他的想法实现的概率最大. 我的第一个想法是枚举,枚举的话我想到用dfs,但是认为太麻烦. ...

浅谈MVC中的service层(转)

概述 mvc框架由model,view,controller组成,执行流程一般是:在controller访问model获取数据,通过view渲染页面. mvc模式是web开发中的基础模式,采用的是分层 ...

react项目请求数据的fetch的使用

准备三个文件(封装请求函数),然后测试一下,能不能调用数据 第一个文件  request.js import 'whatwg-fetch'; /** * Parses the JSON returne ...

这篇关于hdoj第2000题c语言答案,hdoj上的一题和程序设计第二次作业的拓展-人见人爱a+b的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/221006

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st