这道题看见就觉得是道水题,想着随便写写就能A了,然后就开始上手直接模拟,然后就被数据打脸了。

后面就困了一个多小时,各种改,最后还是看了题解发现了scanf的多种用法。

题目大概意思就是说:

        给一个  a.bec格式的数,让你转化。

a是正整数,b是小数,ec是10的c次方。

就是转化  a.b*10的c次方

下面给代码。

#include<iostream>
#include<cstdio>
using namespace std; int main()
{
char str[2500];
int a, b, c;
scanf("%d.", &a);
scanf("%[^e]%ne%d", str, &b, &c);
if (str[0] == 48 && c == 0 && b == 1)
{
cout << a << endl;
}
else if (c >= b)
{
printf("%d%s%.*d\n", a, str, c - b, 0);
}
else
{
printf("%d%.*s.%s\n", a,c,str, str + c);
}
return 0;
}

建议结合下下面的的看,不然几个冷门的输入输出符号是看不懂的。

https://blog.csdn.net/shyazhut/article/details/52132917

分析思路:

  首先读入正整数  也就是a,注意scanf("%d.",&a)    %d下边跟着个小数点,这样输入时就把小数点忽略掉了,并且停止读入,进入到下一个scanf

  然后就开始读入字符串,直到e为止,并且不读入e。

  %n就是获取这时候的字符串的长度

  然后%n后面还跟着个e,这个和小数点的作用时一样的,也是忽略掉输入的e,并且停止读入

  最后还接着读入一个整数,也就是e后面的数字

  就这样读入结束啦

下面是输出:

  首先,如果 字符串的首位为字符‘0’(ASCII码为整数 48),并且字符串长度只有1,并且e后面的整数为0,那么就直接输出a。

  如果   e后面的整数大于等于字符串长度(就是小数部分的长度),那么就先输出a,然后输出字符串,最后如果c-b>0,那么就用0补齐。

  如果  e后面的整数小于字符串长度(也就是小数部分的长度),那么就先输出a,然后输出长度为c的字符串,然后输出小数点,最后输出起点为(b+c)的剩余的字符串。

ok,就是这样了,学到了几个scanf的用法,美滋滋。

CodeForces - 697B的更多相关文章

  1. codeforces 697B Barnicle

    题目链接:http://codeforces.com/problemset/problem/697/B 题目大意: 将科学计数法用十进制表示.[如果类似于7.0应输出7] 解题思路: Java 中 B ...

  2. 【CodeForces 697B】Barnicle

    对科学计数法表示的数,输出其10进制的形式. c++来做,需要考虑这些细节: 当b==0,d==0时,只输出a. 当不需要补零的情况有两种: 一种是刚好是整数,只输出a(注意1.0e1的情况是输出1) ...

  3. CodeForces 697B Barnicle 模拟

    强行模拟 纪念一下…… #include<stdio.h> #include<iostream> #include<algorithm> #include<m ...

  4. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  5. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  6. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  7. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  8. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

  9. CodeForces - 274B Zero Tree

    http://codeforces.com/problemset/problem/274/B 题目大意: 给定你一颗树,每个点上有权值. 现在你每次取出这颗树的一颗子树(即点集和边集均是原图的子集的连 ...

随机推荐

  1. vue 父子传值,子页面没有实时刷新的问题

    在做高德地图的时候,发现列表点击编辑的时候,地图不能实时更新: <el-form-item label="门店坐标:" :label-width="formLabe ...

  2. PC端页面适应不同的分辨率的方法 (转载)

    原文地址:https://blog.csdn.net/fengzhen8023/article/details/81281117 上周完成一个PC端的项目,对于我这样的小白来说,这个项目里面最大的问题 ...

  3. jquery特效 - 网站水波纹

    1,index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  4. weex 随笔

    1.三大模块: <template>:样板,内容区 <style>:css <script>: js <script> export default{ ...

  5. C++编程学习(一) 概述

    从一年前开通博客,陆陆续续写了一些总结类的东西,但是一直没push到网上.现在发现,分享自己的笔记也是自身学习.与他人交流的好方式.从今天开始,我会经常的push一些学习笔记到博客中,先从C++开始吧 ...

  6. -webkit-appearance —— webkit外观样式属性

    -webkit-appearance —— webkit外观样式属性 -webkit-appearance 是一个 不规范的属性(unsupported WebKit property),它没有出现在 ...

  7. Linix CentOS6.5 下载安装图解(转)

    CentOS 6.5系统镜像有32位和64位两个版本,生产服务器如果是大内存(4G以上内存) 建议安装64位版本CentOS-6.5-x86_64-bin-DVD1.iso 附:CentOS 6.5下 ...

  8. linux_c_udp_example

    udp_server #include <stdlib.h> #include <string.h> #include <unistd.h> #include &l ...

  9. 2020/2/3 PHP代码审计之PHP弱类型

    0x00 简介 php中有两种比较的符号 == 与 === <?php 2 $a = $b ; 3 $a===$b ; 4 ?> === 在进行比较的时候,会先判断两种字符串的类型是否相等 ...

  10. CodeForces - 748E Santa Claus and Tangerines(二分)

    题意:将n个蛋糕分给k个人,要保证每个人都有蛋糕或蛋糕块,蛋糕可切, 1.若蛋糕值为偶数,那一次可切成对等的两块. 2.若蛋糕值为奇数,则切成的两块蛋糕其中一个比另一个蛋糕值多1. 3.若蛋糕值为1, ...