fafu 1261 取数相加

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fafu 1261 取数相加相关的知识,希望对你有一定的参考价值。

题目链接:http://acm.fafu.edu.cn/problem.php?id=1261


 


 题目还不算难吧,很多种方法都可以解决的,其中有难得,也肯定有比较简单的,难得就是,不管是数字还是字符,都是一个字符的读取,这种的相对比较麻烦一点吧。
遇到数字的时候,就开始判断了,每次都将数字进行 *10+自身,然后遇到非数字字符退出,这个方法其实是还好的,就是遇到负数的时候就相对比较麻烦一点了。不过也是一种
方法。
 下面说说我要介绍的一种,就是直接将整个数字的直接一次性读取,遇到非数字类型进行抛弃,下次遇到数字类型,一次性读取,把每次遇到的数字进行想加,最后的结果
保留三位小数就是所求的答案。
 代码如下:
  #include <stdio.h>
  int main(){
 
    double ans = 0,temp;//一个是用来统计结果,一个是用来存放当前的double类型的小数
  
    char ch;//用来存放其他元素
 
      while(ch != -1){//若是为-1,则说明读取不到字符,即说明输入已经结束
 
           while(scanf("%lf",&temp)==1)//每次遇到输入的类型为double的时候,就一直读取完毕
  
                    ans += temp;//将每一次读取到的double类型存放在ans里面
   
           ch = getchar(); //读取完一个double类型之后,开始读取下一个字符,若是读取到的个数不为空,则继续
      //循环,若是没有读取到任何字符,则返回值为-1,那么就会直接跳出循环体,则
      //输出最后需要的答案
        }
      printf("%.3lf\n",ans);//得到所求的答案,并按要求保留3位小数
      return 0;
 }

 

以上是关于fafu 1261 取数相加的主要内容,如果未能解决你的问题,请参考以下文章

P1392 取数[堆]

P1004 方格取数

P1004 方格取数

js 大数相加和小数相加

两个行列式怎么相加?

java 中Integer 类型为啥能相加?