1073. Scientific Notation (20)

#include <iostream>
#include <string.h>

using namespace std;

char s[10010], former[10010];

int main()
{
	gets(s);

	if(s[0] == '-')
	{
		printf("-");
	}

	int len = strlen(s), i, j, formerlen;
	char cur;

	for(i = 1, j = 0; i < len; i++)
	{
		cur = s[i];

		if(cur == 'E')
		{
			cur = s[i + 1];
			break;
		}
		else if(cur != '.')
		{
			former[j++] = cur;
		}
	}
	formerlen = j;

	int zhishu = 0;
	for(j = i + 2; j < len; j++)
	{
		zhishu = zhishu * 10 + s[j] - '0';
	}

	if(cur == '-')
	{
		printf("0.");

		for(i = 1; i < zhishu; i++)
		{
			printf("0");
		}

		for(i = 0; i < formerlen; i++)
		{
			printf("%c", former[i]);
		}
	}
	else
	{
		for(i = 0; i < formerlen && i <= zhishu; i++)
		{
			printf("%c", former[i]);
		}

		if(i < formerlen)
		{
			printf(".");

			for(j = i; j < formerlen; j++)
			{
				printf("%c", former[i]);
			}
		}
		else
		{
			for(j = i; j <= zhishu; j++)
			{
				printf("0");
			}
		}
	}

	printf("\n");

	system("pause");
	return 0;
}

 

posted on 2025-11-23 17:15  王景迁  阅读(2)  评论(0)    收藏  举报

导航