[bo][un]foxczh[/un] 在 2008-11-18 21:14 的发言:[/bo]
解释下行不……
PS:随便说一句。。。编译不通过……
解释下行不……
PS:随便说一句。。。编译不通过……
你确定编译不通过?
把错误信息贴上我看一下行吗?
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { unsigned long n; int a, i, j, carry = 0, sum; char *p, *q; printf("输入a n的值(注意a只能取0至9中的数字, n为自然数):\n"); scanf("%d %d", &a, &n); /*如果a的值为0,结果肯定就是0*/ if(a == 0 || n == 0) { printf("sum = 0\n"); } else { if((q = p = (char *)malloc(sizeof(char) * (n + 1))) == NULL) { printf("malloc error!\n"); return 0; } memset(p, 0, (n+1)); for(i = n; i > 0; i--) { sum = carry; for(j = i; j > 0; j--) { sum += a; } *p++ = sum % 10 + 48; carry = sum / 10; } *p++ = carry + 48; printf("sum = "); for(i = strlen(q) - 1; i >= 0; i--) { printf("%c", q[i]); } printf("\n"); free(q); } }