首页 > 用户发贴区 > 编程问题提问区 > {问题}求一个数的幂
2009
01-19

{问题}求一个数的幂

我看21视频的C语言教程


那天看完就想自己写一点小东西


结果就写了一个求一个数的幂的小程序


代码如下main()
{
int a,i,sum;
system(“graftabl 936″); /*DOS命令之启用汉字显模式*/
clrscr();
printf(“请输入底数数字”);
scanf(“%d”,&a)   ;
system(“echo 请输入幂的次数”);
scanf(“%d”,&i)   ;
sum=a*a*–i;
printf(“我的QQ:5735524\n%d\n “,sum);
getch();
system(“graftabl 437″); /*还原英文显示模式*/
}


 


我运行了一下 幂为0的时候 输出的是负数有时候  怎么回事俄 


能帮我么


 


 


*最好帮我编写一个再  ,加上注释*


小弟在这里谢谢了


{问题}求一个数的幂》有 1 条评论

  1. RockMolance 说:

    你的代码在我机器通过不了,这是以我理解写的C++,下面还有改写的C,没测试过,你自己测试一下。

    ///////////////////////////////C++ 编译器为VS 2008

    #include “stdafx.h”
    #include <iostream>
    using namespace std;
    int _tmain(int argc, _TCHAR* argv[])
    { float dishu=1;//定义底数
     int n=0;//定义幂
     float sum=1;//定义结果
     cout<<”输入底数\n”;
     cin>>dishu;
     cout<<”输入幂\n”;
        cin>>n;
     if (dishu!=0 || dishu!=1 || n!=0)//如果底数不是0或1,幂不是0;则执行下面语句块
     {
      if (n>0)//如果幂大于0,则执行下面语句块
      {
       for(int i=1;i<=n;i++)
        sum=sum*dishu;
      }
      else if(n<0)//如果幂小于0,则执行下面语句块
      {
       for (int i=1;i<=(-n);i++)
        sum=sum*dishu;
       sum=1/sum;

      }
     
     }
     else if(n==0)//如果幂为0结果为1
      sum=1;
     else if(dishu==0 || dishu==1)//如果底数数为0或1结果为原来的幂
      sum=dishu;
     cout<<”结果是:”<<sum<<endl;
     return 0;
    }

    //////////////////////////////c

    #include <stdio.h>
    int main()
    {
     float dishu=1;//定义底数
     int n=0;//定义幂
     float sum=1;//定义结果
     printf(“输入幂\n”);
        scanf(“d%\n”,&n);
     printf(“输入底数\n”);
     scanf(“f%\n”,&dishu);

     if (dishu!=0 || dishu!=1 || n!=0)
     {
      if (n>0)
      {
       for(int i=1;i<=n;i++)
        sum=sum*dishu;
      }
      else if(n<0)
      {
       for (int i=1;i<=(-n);i++)
        sum=sum*dishu;
       sum=1/sum;

      }
     
     }
     else if(n==0)
      sum=1;
     else if(dishu==0 || dishu==1)
      sum=dishu;
     printf(“结果是:%d\n”,sum);
     return 0;
    }

     

留下一个回复