zoukankan      html  css  js  c++  java
  • 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 ",ans);//得到所求的答案,并按要求保留3位小数
          return 0;
     }
  • 相关阅读:
    (九)MySQL用户和权限管理
    activemq修改admin密码
    zookeeper与activemq整合
    (十一)数组array
    (十)while和until循环
    (八)MySQL索引操作
    查看MySQL是否在运行
    MySQL的启动和关闭
    常用的Web服务器软件整理
    [CodeForce 801A] Vicious Keyboard
  • 原文地址:https://www.cnblogs.com/huaixiaohai2015/p/5854291.html
Copyright © 2011-2022 走看看