[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);
    }
}