北航上机复试13真题

这篇博客介绍了如何处理正数的科学计数法表示。通过输入一个正数,找到小数点位置(loc)和第一个非零数字的位置(first),然后根据数值大小确定10的指数。大于1时指数为(loc - first - 1),小于1时指数为(loc - first)。特别注意在输出时判断是否需要显示小数点。
摘要由CSDN通过智能技术生成

给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。比如:输入0.000002,输出2e-6;输入123.456,输出1.23456e2;输入123456,输出1.23456e2

解题:

首先将其放入到Char数组中,找到loc即为小数点所在位数,和first 即为第一位非零数的位置。然后分两种情况输出,大于1和小于1的两种情况;大于一是10的指数是loc - first-1;

小于一的10的指数是loc - first; 注意要判断一下是否要输出“.”,因为当first == 总长-1 不用输出“.”

#include <cstdio>
#include <string.h>
#define maxn 105

int main()
{
    char s[maxn] ;
    while ( scanf("%s",s) )
    {
        int loc = 0 ;
        for ( int i = 0 ; i < strlen(s) ; i ++ )
        {
            if( s[i] == '.')
            {
                loc = i;
                break;
            }
        }
        int first = 0;
        for ( int i = 0 ; i < strlen(s) ; i++)
        {
            if(s[i] != '0'&&s[i] !='.')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值