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 |
请教一下, Presentation Error?是出了什么错.以前好像没碰到过!#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