PAT乙级 科学计数法 (20)

来源:互联网 发布:英本网linux内核视频 编辑:程序博客网 时间:2024/05/18 15:08

简单的模拟题,理清逻辑就OK.

#include "iostream"#include "stdio.h"#include "string"#include "string.h"#include "algorithm" using namespace std;int main(){string input;int i,numlen,k;int nweinum = 0;char num[10000];char weinum[100];bool flag1;bool flag2;cin>>input;//input = "+1.23400E+6";if(input[0] == '+')flag1 = 1;elseflag1 = 0;i = 1;numlen = 0;while(input[i]!='E'){if(input[i]!='.'){num[numlen] = input[i];numlen++;}i++;}i++;if(input[i] == '+')flag2 = 1;elseflag2 = 0;i++;k=0;while(input[i]!='\0'){weinum[k] = input[i];i++;k++;}for(i=0;i<k;i++){nweinum = nweinum*10 + (weinum[i]-'0');}if(flag1 == 0)cout<<"-";if(flag2 == 0){for(i=0;i<nweinum;i++){if(i == 1)cout<<".";cout<<"0";}for(i=0;i<numlen;i++){cout<<num[i];}cout<<endl;}else{if(nweinum<(numlen-1)){for(i=0;i<numlen;i++){if(i == nweinum)cout<<".";cout<<num[i];}}else{for(i=0;i<numlen;i++){cout<<num[i];}for(i=0;i<nweinum-numlen+1;i++){cout<<"0";}}cout<<endl;}return 0;}


0 0
原创粉丝点击