| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:请教一下, Presentation Error?是出了什么错.以前好像没碰到过!In Reply To:请教一下, Presentation Error?是出了什么错.以前好像没碰到过! Posted by:piratelzs at 2005-10-29 10:19:41 > #include <stdio.h>
> #include <memory.h>
>
> char Result[125], Temp[125];
> unsigned char Tab[10][10][2];
> unsigned char s[6];
>
> void MakeTab() //制造9 * 9乘法表
> {
> int i, j, aa;
> for (i = 0; i < 10; i++)
> {
> for (j = 0; j < 10; j++)
> {
> aa = i * j;
> Tab[i][j][0] = aa / 10;
> Tab[i][j][1] = aa % 10;
> }
> }
> }
>
> void Caculate() //两个数组相乘机算
> {
> memset(Temp, 0, 125);
> int i, j;
> for (i = 1; i < 6; i ++)
> {
> for (j = 5; j < 125; j++)
> {
> if (0 != s[i] && 0 != Result[j])
> {
> Temp[i + j - 5] += Tab[s[i]][Result[j]][1];
> Temp[i + j - 6] += Tab[s[i]][Result[j]][0];
> }
> }
> }
> for (i = 124; i > 0; i--)
> {
> Temp[i - 1] += Temp[i] / 10;
> Temp[i] %= 10;
> }
> memcpy(Result, Temp, 125);
> }
>
> void OutPut() //将结果输出
> {
> int i, aa, bb;
> for (i = 0; i < 125; i++)
> {
> if (0 != Result[i])
> {
> aa = i;
> break;
> }
> }
> for (i = 124; i > 0; i--)
> {
> if (0 != Result[i])
> {
> bb = i;
> break;
> }
> }
> if (-2 == Result[bb]) bb--;
>
> for (i = aa; i <= bb; i ++)
> {
> printf("%c", Result[i] + 48);
> }
> }
>
> int GetNumber() //将输入数组进行调整'.'放到最前面
> {
> int aa = 0, i;
> for (i = 5; i >= 0 ; i --)
> {
> if ('.' == s[i])
> {
> aa = 5 - i;
> }
> else s[i] -= 48;
> }
> for (i = 5; i > 0 ; i --)
> {
> if ('.' == s[i])
> {
> s[i] = s[i - 1];
> s[i - 1] = '.';
> }
> }
> return aa;
> }
>
> void AdjustPos(int n)
> {
> int i;
> int bb = 124 - n;
> for (i = 1; i <= bb; i++)
> {
> Result[i - 1] = Result[i];
> }
> Result[bb] = '.' - 48;
> }
>
> int main()
> {
> int n, nDotPos, i;
> MakeTab();
> while (2 == scanf("%s%d", s, &n))
> {
> nDotPos = GetNumber();
> memset(Result, 0, 125);
> memcpy(Result + 120, s + 1, 5);
> for (i = 1; i < n; i ++)
> {
> Caculate();
> }
> AdjustPos(nDotPos * n);
> OutPut();
> }
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator