时间限制:1 秒

内存限制:32 兆

特殊判题:否

提交:2725

解决:736

题目描述:

求2个浮点数相加的和

题目中输入输出中出现浮点数都有如下的形式:

P1P2...Pi.Q1Q2...Qj

对于整数部分,P1P2...Pi是一个非负整数

对于小数部分,Qj不等于0

输入:

对于每组案例,第1行是测试数据的组数n,每组测试数据占2行,分别是两个加数。

每组测试数据之间有一个空行,每行数据不超过100个字符

输出:

每组案例是n行,每组测试数据有一行输出是相应的和。

输出保证一定是一个小数部分不为0的浮点数

样例输入:
2
0.111111111111111111111111111111
0.111111111111111111111111111111 10000000.655555555555555555555555555555
1.444444444444444444444444444445
样例输出:
0.222222222222222222222222222222
10000002.1
来源:
2008年北京大学软件所计算机研究生机试真题

思路:

容易犯细节错误,此题我WA了好几次。

代码:

#include <stdio.h>
#include <string.h>
char s1[110], s2[110], s[110];
int Find(char a[], int n)
{
int i;
for (i = 0; a[i]; i++)
{
if (a[i] == '.')
{
return i;
}
}
return -1;
}
int main()
{
int ca;
scanf("%d", &ca);
while (ca--)
{
scanf("%s%s", s1, s2);
int n1 = strlen(s1);
int n2 = strlen(s2);
int pos1 = 0, pos2 = 0;
pos1 = Find(s1, n1);
pos2 = Find(s2, n2);
int i = n1, j = n2;
int d = (n1 - pos1) - (n2 - pos2);
if (d > 0)
{
for (; j < n2 + d; j++)
{
s2[j] = '0';
}
s2[j] = '\0';
n2 = j;
}
else if (d < 0)
{
for (; i < n1 - d; i++)
{
s1[i] = '0';
}
s1[i] = '\0';
n1 = i;
}
i--;
j--;
int t = 0, len = 0;
while (i >= 0 && j >= 0)
{
if(s1[i] == '.')
{
s[len] = '.';
}
else
{
t += s1[i] + s2[j] - 2 * '0';
s[len] = t % 10 + '0';
t /= 10;
}
len++;
i--;
j--;
}
while (i >= 0)
{
t += s1[i--] - '0';
s[len++] = t % 10 + '0';
t /= 10;
}
while (j >= 0)
{
t += s2[j--] - '0';
s[len++] = t % 10 + '0';
t /= 10;
}
if (t == 1)
{
s[len++] = '1';
}
j = 0;
while (s[j] == '0')
{
j++;
}
for (i = len - 1; i >= j; i--)
{
printf("%c", s[i]);
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1137
User: liangrx06
Language: C
Result: Accepted
Time:150 ms
Memory:912 kb
****************************************************************/

最新文章

  1. URL类
  2. fetch 关于七牛的content-type 的问题
  3. LeetCode 4 Median of Two Sorted Arrays 查找中位数,排除法,问题拓展 难度:1
  4. OPRNGL之渲染过程大概梳理
  5. FLEX监视浏览器关闭事件
  6. 省略号 对单行 多行的css
  7. db2实例、数据库、表空间
  8. ValueStack值栈和ActionContext
  9. createdb test时报global/pg_filenode.map不存在
  10. 用hoverclock插件实现HTML5时钟
  11. android下的数据存储
  12. windows环境下svn同步web文件[转]
  13. ApplicationContext
  14. Oracle教程-常用命令(二)
  15. iOS9新特性-3D Touch
  16. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
  17. saltstack主机管理项目:计主机管理项目命令分发器(三)
  18. Web服务调试可用,发布之后访问出错
  19. python 列表返回重复数据的下标
  20. mysql数据库自增id重新从1排序的两种方法

热门文章

  1. 【CF676D】Theseus and labyrinth(BFS,最短路)
  2. ADO:用代码调用存储过程
  3. Android系统默认语言改为中文
  4. js - 锚点-scrollIntoView()
  5. Classical method of machine learning
  6. Java实验--关于英文短语词语接龙
  7. kafka生产者客户端
  8. 微信小程序 压缩图片并上传
  9. Java生成GUID的方法
  10. 设置linux编码utf-8