PAT 을 등 1024 과학 기수법 C 언어
과학 계수 법 은 과학자 들 이 크 거나 작은 숫자 를 나타 내 는 편리 한 방법 으로 정규 표현 식 [+ -] [1 - 9] 을 만족 시 키 는 것 이다.
현재 과학 계수 법의 형식 으로 실수 A 를 드 립 니 다. 프로그램 을 작성 하여 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하도록 하 십시오.
입력 형식:
각 입력 에는 과학 계수 법 으로 표 시 된 실수 A 를 포함 하 는 테스트 용례 가 1 개 씩 포함 되 어 있다.이 숫자의 저장 길 이 는 9999 바이트 를 초과 하지 않 고 지수의 절대 치 는 9999 를 초과 하지 않 는 다.
출력 형식:
모든 테스트 용례 에 대해 한 줄 에서 일반 숫자 표시 법 에 따라 A 를 출력 하고 모든 유효 위 치 를 유지 하 며 끝의 0 을 포함 합 니 다.
입력 샘플 1:
+1.23400E-03
출력 예시 1:
0.00123400
입력 샘플 2:
-1.2E+10
출력 예시 2:
-12000000000
생각:
1. 먼저 밑 에 있 는 부호 의 위치 에 따라 전체 수의 기 호 를 출력 하고, 마이너스 이면 '-' 를 출력 하 며, 플러스 이면 출력 하지 않 는 다.
2. 입력 에서 E 를 찾 아 다음 지 수 를 절취
3. 지수 가 양수 인지 음수 인지 판단 한다.
(1) 지수 가 음수 라면 지수 크기 에 따라 밑 에 있 는 개수 의 0 을 출력 하고 0 을 출력 한 후에 밑 에 있 는 소수점 을 뛰 어 넘 는 것 을 기억 합 니 다.하면, 만약, 만약...직접 출력
(2) 지수 가 양수 라면 지수 가 밑 의 소수점 뒤의 자릿수 보다 작 으 면 소수점 을 오른쪽으로 이동 시 킨 다음 에 나머지 밑 의 수 를 출력 한다.지수 가 밑 에서 소수점 뒤의 자릿수 보다 크 면
출력 이 끝 난 후 남 은 0 을 출력 합 니 다.지수 가 + 0 이면 직접 출력 베이스
시작 변수
1. num [10000] 문자열 받 기
2.e_mark, 입력 문자열 의 E 위 치 를 기록 하여 지수 와 밑 수 를 구분 합 니 다.
3.index_flag, 지수 기록 에 사용 되 는 기호 위치
4.index_ch, 지수 문자열 기록 에 사용
5. index, index 기록 에 사용ch 변환 지수의 정수 형식
코드
#include "stdio.h"
#include "math.h"
#include "string.h"
int main()
{
char num[10000];
scanf("%s",num);
int i;
// , ;
if(num[0] == '-')
{
printf("-");
}
// E ,
int e_mark;
for(i = 1; i < strlen(num); i++)
{
if(num[i] == 'E')
{
e_mark = i;
break;
}
}// , E
i++;//
//
char index_flag = num[i];
//
char index_ch[5];// 4 , \0
int j = 0;
for(i = i + 1; i < strlen(num); i++)// i+1, i
{
index_ch[j] = num[i];
j++;
}
//
int index = 0;
// , , 1234, 1 10 (4-1)
int index_right = strlen(index_ch) - 1;
for(i = 0; i < strlen(index_ch); i++)
{
index += (index_ch[i] - '0') * pow(10,index_right);
index_right--;
}//
if(index_flag == '-')// -
{
if(index != 0)
{
printf("0.");// 0, ‘0.’
for(i = 0; i < index - 1; i++)// “0.” ,
{
printf("0");
}
for(i = 1; i < e_mark; i++)// num , 1 ,0 ,
{
if(i == 2)//
{
continue;
}
printf("%c",num[i]);
}
}
else if(index == 0)// 0
{
for(i = 1; i < e_mark; i++)// num
{
printf("%c",num[i]);
}
}
}
else if(index_flag == '+')
{
if(index != 0)
{
if(index < e_mark - 3)//
{
for(i = 1; i < e_mark ; i++)
{
if(i == 2)//
{
continue;
}
else if(i == 2 + index)// 0
{
printf("%c",num[i]);
printf(".");
}
else
{
printf("%c",num[i]);
}
}
}
else if(index == e_mark - 3) //
{
for(i = 1; i < e_mark ; i++)
{
if(i == 2)//
{
continue;
}
else
{
printf("%c",num[i]);
}
}
}
else if(index > e_mark - 3)//
{
for(i = 1; i < e_mark; i++)
{
if(i == 2)//
{
continue;
}
else
{
printf("%c",num[i]);
}
}
// , 0
for(i = 0; i < index - (e_mark - 3); i++)
{
printf("0");
}
}
}
else if(index == 0)// 0
{
for(i = 1; i < e_mark; i++)// num
{
printf("%c",num[i]);
}
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.