PAT - B 1024. 과학 계수 법
과학 계수 법 은 과학자 들 이 매우 크 거나 작은 숫자 를 나타 내 는 편리 한 방법 으로 정규 표현 식 [+ -] [1 - 9] 을 만족 시 키 는 것 이다. "[0 - 9] + E [+ -] [0 - 9] +, 즉 숫자의 정수 부분 은 1 자리 에 불과 하고 소수 부분 은 적어도 1 자리 가 있 으 며 이 숫자 와 지수 부분의 양음 호 는 양수 에 대해 서도 반드시 명확 하 게 제시 해 야 한다.
현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.
입력 형식:
각 입력 에는 과학 계수 법 으로 표 시 된 실수 A 를 포함 하 는 테스트 용례 가 1 개 씩 포함 되 어 있다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.
출력 형식:
모든 테스트 용례 에 대해 한 줄 에서 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하 며 끝의 0 을 포함 합 니 다.
입력 샘플 1:
+1.23400E-03
출력 예시 1:
0.00123400
입력 샘플 2:
-1.2E+10
출력 예시 2:
-12000000000
사고 분석:
먼저 제목 에 따라 입력 데 이 터 를 분해 하고 기호 (head) 를 얻 으 며 소수점 의 유효 숫자 (char a []) 와 지수 (ex) 를 제외 합 니 다.지수 크기 에 따라 분류 처리 하고 ex > = 0 시 소수점 에서 오른쪽으로 ex 위 치 를 이동 하 며 유효 숫자 길 이 를 초과 하면 0 을 보충 해 야 합 니 다.ex < 0 시, 소수점 이 왼쪽으로 ex 자 리 를 이동 하고 소수점 왼쪽 에 0 이 있 으 며, 나머지 초과 부분 은 똑 같이 0 을 보충 합 니 다.
코드:
#include <stdio.h>
int main()
{
char head, a[10001] = {0};
int ex = 0;
scanf("%c%c.%[0-9]E%d", &head, &a[0], a+1, &ex); //
if (head == '-') printf("-"); //
if (ex >= 0)
for (int i = 0; i < ex+1 || a[i] != 0; i++) { // ,
if (i == ex+1) printf("."); // ,
printf("%c", a[i]==0 ? '0' : a[i]); // 0
}
else {
printf("0.");
for (int i = 1; i < (-ex); i++) printf("0");
printf("%s", a);
}
printf("
");
return 0;
}
여기 눌 러 서 시험 문제 홈 페이지 에 들 어가 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
PAT 01-2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.