PAT (Nivel básico) Práctica (chino) 1024 notación científica

1 #include <stdio.h>
 2 #include < string .h>
 3 #include <algorithm>
 4  usando el  espacio de nombres std;
5  const  int maxn = 100000 ;
6  char a [maxn];
7  int main () {
 8      int evalue = 0 , pos = 0 , flag = 0 , ep, len, pointp;
9      int cuenta = 0 ;
10      scanf ( " % s " , a);  
11  
12      len =strlen (a);
13      para ( int i = 1 ; i <len; i ++ ) {
 14          if (a [i] == ' . ' ) {Pointp = i;}
 15          if (a [i] == ' E ' ) {ep = yo; break ;}
 16      }
 17      para ( int i = ep + 2 ; i <len; i ++ ) {
 18          evalue = evalue * 10 + (a [i] - ' 0 ' );
19      }
 20      if (a [ep + 1] == ' + ' ) pos = 1 ;
21      if (a [ 0 ] == ' - ' ) printf ( " % c " , a [ 0 ]);
22      if (pos == 1 ) {
 23          cuenta = 0 ;
24          para ( int i = 1 ; i <ep; i ++ ) {
 25              if (i> pointp) {
 26                  if (count <evalue) {printf ( " % c " , a [i]); count ++ ;}
 27                 de lo contrario  if (count == evalue) printf ( " .% c " , a [i]);
28                  más printf ( " % c " , a [i]);
29              }
 30              más  if (i <puntop) printf ( " % c " , a [i]);
31          }
 32          if (cuenta < evalue) {
 33              para ( int i = cuenta; i <evalue; i ++) printf ( " 0 " );
34          }
 35      }
 36      más {
 37         printf ( " 0 " );
38          para ( int i = 1 ; i <evalue; i ++) printf ( " 0 " );
39          para ( int i = 1 ; i <ep; i ++ )
 40              if (i! = Pointp)
 41                  printf ( " % c " , a [i]);      
42      }
 43      
44  
45  
46      retorno  0 ;
47 }
Ver código

 

Supongo que te gusta

Origin www.cnblogs.com/Learn-Excel/p/12713389.html
Recomendado
Clasificación