Github链接地址:https://github.com/Startup-try/object-oriented
这个题目现在想想没有那么难,其实还挺简单的,但是中午花了好长的时间还不懂得怎么做,感觉要做出内伤。晚饭吃后,又查了一遍下午查资料没搞懂的"03d"——输出一个数,不足3位在前面补0,后面就比较顺利地将这个题目解出来。
这个题目主要的难点是在输出a+b的和的格式上,题目要求用标准形式输出即当和值为4位及4位以上,从右边往左每隔3位数要加个逗号,这是我在之前都没做过的。最开始是以为C语言中有以标准形式输出的函数,找了找,发现没有。后面不知道怎么下手就去网上看有没有什么方法,看到了班级同学是怎么做的,大致看一下,没有很细致地去看,明白了用"%d,%d"这样的形式就能按照题目的要求输出标准形式,知道了是这样子做后就自己动手去打代码。一开始的思路是第一个逗号前的数用c除以某个确切的数来得到,第一个逗号后的数用a除以某个确切的数+b除以某个确切的数得到,算得差点没出内伤:一直错,一直改,改了还是错。敲得代码真的是又臭又长,总结原因,是自己算法出了大问题。一开始写的代码:

include<stdio.h>

int main()
{
int a,b,c,i=0,temp,a0,a1,a2,b0,b1,b2,t=0;
scanf("%d %d",&a,&b);
c=a+b;
if((c>0&&c<1000)||(c<0&&c>-1000))
printf("%d",c);
else if((c>1000&&c<1000000)||(c>-1000000&&c<-1000)){
c=c/1000;
a=a%1000;
b=b%1000;
if((a+b)%1000==0)
printf("%d,%d%d%d",c,t,t,t);
else if((a+b)%1000<100)
printf("%d,%d%d",c,t,(a+b)%1000);
else
printf("%d,%d",c,(a+b)%1000);
}
if((c>1000000&&c<3000000)||(c<-1000000&&c>-2000000)){
c=c/1000000;
a0=a;
a=a%1000;
a1=a;
a0=a0/1000;
a0=a0%1000;
a2=a0;
b0=b;
b=b%1000;
b1=b;
b0=b0/1000;
b0=b0%1000;
b2=b0;
if(((a2+b2)%1000==0)&&((a1+b1)%1000==0))
printf("%d,%d%d%d,%d%d%d",c,t,t,t,t,t,t);

else if(((a2+b2)%1000==0)&&((a1+b1)%1000<100))
printf("%d,%d%d%d,%d%d",c,t,t,t,t,(a1+b1)%1000);

else if(((a2+b2)%1000==0)&&((a1+b1)%1000>100))
printf("%d,%d%d%d,%d",c,t,t,t,(a1+b1)%1000);

else if(((a2+b2)%1000<100)&&((a1+b1)%1000>100))
printf("%d,%d%d,%d",c,t,(a2+b2)%1000,(a1+b1)%1000);

else if(((a2+b2)%1000<100)&&((a1+b1)%1000==0))
printf("%d,%d%d,%d%d%d",c,t,(a2+b2)%1000,t,t,t);

else if(((a2+b2)%1000<100)&&((a1+b1)%1000<100))
printf("%d,%d%d,%d%d",c,t,(a2+b2)%1000,t,(a1+b1)%1000);

else if(((a2+b2)%1000>100)&&((a1+b1)%1000==0))
printf("%d,%d,%d%d%d",c,(a2+b2)%1000,t,t,t);

else if(((a2+b2)%1000>100)&&((a1+b1)%1000<100))
printf("%d,%d,%d%d",c,(a2+b2)%1000,t,(a1+b1)%1000);

else
printf("%d,%d,%d",c,(a2+b2)%1000,(a1+b1)%1000);
}
return 0;
}
拿去裁判,一直是5分,6分。

饭后自己去查了资料,不知道怎么就懂得用c除以某个确切的数来得到逗号前后各个数,而且很快就写好了代码。但并不是一下子就全部正确,这中间也经历了两次提交的时候忘了把自己用于测试的代码删掉,导致全部错误,最严重的是把可能为负数的情况忘了考虑。写好了对于整数可行的代码,拿上去裁判,发现才得5分,觉得想不通,后面把示例拿去测试一下才发现忘了考虑结果为负数的情况,然后就去补上,拿去裁判,发现全部正确。好开心、好开心、好开心。忘了将测试代码删了导致全部错误:全部正确的:

正确的代码:

include<stdio.h>

int main()
{
int a,b,c,t,i,j,m;
scanf("%d %d",&a,&b);
c=a+b;
t=i=j=m=c;
if((c>=0&&c<1000)||(c<=0&&c>-1000))
printf("%d",c);
else if((c>=1000&&c<1000000)||(c>-1000000&&c<=-1000)){
c/=1000;
t=t%1000;
if(t<0)
t=-t;
printf("%d,%03d",c,t);
}
else if((c>=1000000&&c<=2000000)||(c<=-1000000&&c>=-2000000)){
c/=1000000;
m%=1000000;
j=m/1000;
i%=1000;
if(j<0)
j=-j;
if(i<0)
i=-i;
printf("%d,%03d,%03d",c,j,i);
}
return 0;
}
总结:一开始还没注意到a,b是整数,定义了double类型的a,b。这个考的知识点主要是“/”,“%”的用法。整数类型的a,/10^几次方(小于a)就是干掉后面几位,%10^几次方,就是保留后面几位。 做完了这个题目觉得自己收获还是蛮大的,不可否认,吃完晚饭后,头脑有想过不懂得怎么做就算了,后面自己还能做出来,感觉挺不错的。还有,我想,可能并不是晚饭后就莫名其妙地知道怎么做, 更有可能还是与中午大半天的琢磨有很大关系——就像吃前9个馒头没感觉饱等到第10个才觉得一样,所以还是得多练!

转载于:https://www.cnblogs.com/startup-try/p/5174734.html

编程题A+B Format的总结(第二次作业一)相关推荐

  1. c语言编程题素数和,程序设计入门——C语言 第4周编程练习 1 素数和(5分)

    题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0 输入格式: 两个整数,第一个表示n,第二个表示m. 输出格式: 一个整数,表示第n个素数到 ...

  2. 小学生计算机编程题,真题|小学组倒数第二道编程题,做不出来罚你点赞三遍!...

    原标题:真题|小学组倒数第二道编程题,做不出来罚你点赞三遍! 十年前,当我们还是小学生的时候,碰到电脑你们都会干什么? 是熟练地在网址栏输入www.4399.com,然后一个接一个的点开网页小游戏,还 ...

  3. Python语言程序设计第二章编程题

    编程题1:获得用户输入的一个整数N,计算并输出N 的32次方 n = int(input("请输入一个整数N:")) result = n**32 print("N的32 ...

  4. 奇虎360_2017校园招聘笔试编程题第二题

    今晚做了360的校招笔试题,编程题难度适中,在这里跟大家分享一下编程题的第二题.第二道题也不难想到思路,但是如果写法不当,可能无法满足题目的时间限制. 1. 题目 2. 输入输出及样例 3. 我的思路 ...

  5. 【C Primer Plus第二章课后编程题】

    [C Primer Plus第二章课后编程题] 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.1 #include <stdio.h> int main (void) ...

  6. 吴恩达机器学习第二周编程题参考答案

    Andrew Ng机器学习第二周编程题参考答案 https://download.csdn.net/download/yhf2333/10718778 语言:Octave Tips: 1.记得使用si ...

  7. 今日头条2018校园招聘后端开发工程师(第二批)编程题 - 题解

    以前做过第三批的题目,今日头条2018校园招聘后端开发工程师(第三批)编程题 - 题解.这一场的题目偏技巧和算法,而第三批的题偏编码.这一场涉及的算法有二分查找.区间动态规划. 原题链接:点这儿. 第 ...

  8. 字节跳动2019春招第二次笔试编程题

    字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...

  9. 爱奇艺2018秋季校招测试工程师(第一场、第二场、第三场)编程题汇总 - 题解

    做了下爱奇艺2018测试工程师的编程题,教开发工程师还是偏简单,特意写了个编程题合集. 题目链接: 爱奇艺2018秋季校招测试工程师(第一场): 爱奇艺2018秋季校招测试工程师(第二场): 爱奇艺2 ...

最新文章

  1. Handler、Looper与MessageQueue源码分析
  2. 使用 Circular Reveal 动画让页面跳转更炫酷
  3. 数据库中字段类型对应C#中的数据类型
  4. Centos-Server-Nginx服务(编译安装)
  5. java query api_ElasticSearch(十二) Bool Query JAVA API
  6. 软件工程--第六周学习进度
  7. python输入hello输出olleh_leetcode上的python练习(6)
  8. Sentinel(四)之工作主流程
  9. HugeGraph 图数据库常见问题汇总
  10. Tensorflow学习—— Estimator简介
  11. weka分类器怎么设置样本类别_NeurIPS 2019 少样本学习研究亮点全解析
  12. OSSIM识别APT的三板斧
  13. html二叉树遍历,二叉树的遍历(前序、中序、后序、层次)
  14. linux下面实时查看进程,内存以及cpu使用情况使用命令
  15. mysql科目成绩百分比_Mysql学习经验总结【2】
  16. 转贴:Icon Design Guidelines, Android 2.0
  17. Jetpack来了:走近Google标准应用架构
  18. 车牌识别opencv_基于OpenCV 的车牌识别
  19. SwiftUI Core ML 基础教程
  20. Azure架设Discuz论坛笔记

热门文章

  1. html css移动位置,html – 如何使用CSS移动对象?
  2. java 命令 乱码_解决java 命令行乱码的问题
  3. dim private public static_C++ 强制类型转换操作符 static_cast
  4. 深入解读:KubeVela 与 PaaS 有何不同?
  5. 云原生时代,应用架构将如何演进?
  6. Go 语言 2019 调查报告发布(内含 Go 语言图谱下载)
  7. 北航计算机梅澜,水江澜-北京航空航天大学材料科学与工程学院
  8. 基于特征的对抗迁移学习论文_lt;EYD与机器学习gt;迁移学习:PTL选择式对抗网络...
  9. git touch不是内部_'NODE_ENV' 不是内部或外部命令,也不是可运行的程序或批处理文件。...
  10. mysql+永久+关闭提交,MySQL学习【第十一篇存储引擎之事务解释】