这个问题由两个数字a和b组成,答案是a ^ b的数字总和。

我写了下面的代码。在所有情况下,它都能给出正确的结果。但是,当输入是这样的
我尝试了很多调试,但无法确定问题所在。任何帮助将不胜感激。

提前致谢..!

#include<stdio.h>

void power (int, int, int *product);
int main()
{
    int a,b,product[200];
    scanf("%d %d",&a, &b);
    power(a,b,product);
    return 0;
}

void power(int a, int b, int *product)
{
    int i,m,j,x,temp,sum=0;
    int *p = product;
    *(p+0)=1; //initializes array with only 1 digit, the digit 1
    m=1; // initializes digit counter
    temp=0; //Initializes carry variable to 0.
    for(i=1;i<=b;i++)
        {
            for(j=0;j<m;j++)
            {
               x = (*(p+j))*a+temp;
               *(p+j)=x%10;
               temp = x/10;
            }
             while(temp>0) //while loop that will store the carry value on array.
             {
               *(p+m)=temp%10;
               temp = temp/10;
               m++;
             }
    }
    //Printing result
    for(i=m-1;i>=0;i--)
              sum = sum + *(p+i);
    printf("\n%d",sum);
              printf("\n");
}

最佳答案

我希望下面的代码可以完成您想做的事情。这很简单,看起来也不错。

#include<stdio.h>

void power (int, int);
int main()
{
   int a,b;
   scanf("%d %d",&a, &b);
   power(a,b);
   return 0;
}

void power(int a, int b)
{
   int c=1,sum=0;
   while(b>0)
   {
      c = c*a;
      b--;
   }
   printf("%d\n",c);
   while(c!=0)
   {
      sum = sum+(c%10);
      c =c/10;
   }
   printf("%d\n",sum);

}

07-24 09:46
查看更多