首页 > 代码库 > PAT-1073-Scientific Notation
PAT-1073-Scientific Notation
#include<stdio.h>#include<math.h>#include<string.h>#define MAX 1000int main(){ char str[MAX]; char exp[MAX]; char data_sym; char comp_sym; while(scanf("%s",str)!=EOF) { char * e =strchr(str,‘E‘);//查找字符串里面字符,返回指向这个字符的指针。 char * point = strchr(str,‘.‘); comp_sym=*(e+1); data_sym=*str; //printf("%c %c",data_sym,comp_sym); int start = e-str+2; int len = strlen(str); int comp=0; for(int j =start;j<len;j++) { double num = (str[j]-‘0‘)*pow(10.0,(len-j-1)*1.0); //printf("%lf\n",num); comp+=(int)num; //printf("%d\n",comp); } if(comp_sym==‘-‘) { int move=comp-1; if(data_sym==‘-‘) printf("-"); printf("0."); for(int i=0;i<move;i++) printf("0"); for(char *p=str+1;p!=e;p++) { if(*p!=‘.‘) printf("%c",*p); } printf("\n"); } else { int digit= e-point-1; int j=-1; bool b=false; //printf("%d %d",digit,comp); if(data_sym==‘-‘) printf("-"); if(digit>comp) { for(char *p = str+1;p!=e;p++) { if(*p!=‘.‘) { printf("%c",*p); } else { b=true; } if(b) { j++; if(j==comp) printf("."); } } printf("\n"); } else { int move=comp-digit; for(char *p=str+1;p!=e;p++) { if(*p!=‘.‘) printf("%c",*p); } for(int i=0;i<move;i++) printf("0"); printf("\n"); } } } return 0;}
PAT-1073-Scientific Notation
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。