PAT 1024 과학 계수 법 (20)
5055 단어 pat
현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.
입력 형식:
각 입력 에는 과학 계수 법 으로 표 시 된 실수 A 를 포함 하 는 테스트 용례 가 1 개 씩 포함 되 어 있다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.
출력 형식:
모든 테스트 용례 에 대해 한 줄 에서 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하 며 끝의 0 을 포함 합 니 다.입력 샘플 1: + 1.23400E - 03
수출 사례 1: 0.00123400
입력 샘플 2: - 1.2E + 10
출력 샘플 2: - 1200000000
string str = "-1.23400E+14";
string a = "",tmp="";
char b = ' ', c = ' ';
int len = str.length();
int j = 0;
float num = 0.0;
stringstream ss;
int snum = 0;
b = str[j];
for (int i = 1; i < len; ++i){
if (str[i] == 'E'){ j = i; break; }
else{
a.push_back(str[i]);
}
}
cout << a << endl;
tmp = a;
ss << a;
ss >> num;
a.clear(); ss.clear();
++j;
c = str[j];
++j;
for (j; j < len; ++j){
a.push_back(str[j]);
}
ss << a;
ss >> snum;
cout << snum<< endl;
a.clear(); ss.clear();
if (b == '-')cout << '-';
if (snum == 0){
cout << tmp;
}
if (c=='+'&&snum!=0){
int loc = snum + 2;
len = tmp.length();
for (int i = 0; i < len; ++i){
if (i == loc)cout << '.';
if (tmp[i] == '.')continue;
else cout << tmp[i];
}
int loc2 = loc - len;
if (loc2 > 0){
for (int i = 0; i < loc2; ++i){
cout << '0';
}
}
}
else if (c=='-'&&snum!=0){
cout << "0.";
int loc = snum-1;
len = tmp.length();
for (int i = 0; i < loc; ++i){
cout << '0';
}
for (int i = 0; i < len; ++i){
if (tmp[i] == '.')continue;
else cout << tmp[i];
}
}
cout << endl;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT 01-2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.