新手,一道最简单的幂运算

#include

int main()
{
int a,b,t;int mult=1;
scanf("%d%d",&a,&b);
while(a>=1 && b<=9)
{

    if(b==1)  printf("%d",a);
    else if((b&1)==1)
    {
        for(int i=1;i<=(b+1)/2;i++)
            {
            t=a*a;
            mult*=t;
            }
    }
    else
        for(int i=1;i<=b/2;i++)
            {
            t=a*a;
            mult*=t;
            }
            if((b&1)==1)  printf("%d\n",mult/a);
            else          printf("%d\n",mult);
    mult=1;
    scanf("%d%d",&a,&b);

}


return 0;

}

多组输入数据
每一组输入只有一行,包括两个正整数a和b(1<=a,b<=9)
这道题是求a的b次方,但我上传后,显示超出时间限制。

要看题目要求,怎么结束程序的。
while(a>=1 && b<=9)
你这个是死循环,一直在让用户输入a b
但是oj平台肯定要有个条件退出的。

那不能while(a>=1 && b<=9)
应该
while (scanf("%d%d",&a,&b) != EOF)
或者
while (scanf("%d%d",&a,&b)>0)

#include

int main()
{
int a,b,t;int mult=1;

while (scanf("%d%d",&a,&b) != EOF)
 {
    if(a<1 || a>9)  continue;
    else  if(a>=1 && b<=9)
    {


    if(b==1)  printf("%d",a);
    else if((b&1)==1)
    {
        for(int i=1;i<=(b+1)/2;i++)
            {
            t=a*a;
            mult*=t;
            }
    }
    else
        for(int i=1;i<=b/2;i++)
            {
            t=a*a;
            mult*=t;
            }
            if((b&1)==1)  printf("%d\n",mult/a);
            else          printf("%d\n",mult);
            mult=1;

    }

 }

return 0;

}

我改成这样就WRONG ANSWER

#include

int main()
{
int a,b,t;int mult=1;

while (scanf("%d%d",&a,&b) != EOF)
 {
    if(a<1 || b>9 )  continue;
    else  if(a>=1 && b<=9 && b>=0)
    {

    if(b==0)  printf("%d",1);
    if(b==1)  printf("%d",a);
    else if((b&1)==1)
    {
        for(int i=1;i<=(b+1)/2;i++)
            {
            t=a*a;
            mult*=t;
            }
    }
    else
        for(int i=1;i<=b/2;i++)
            {
            t=a*a;
            mult*=t;
            }
            if((b&1)==1)  printf("%d\n",mult/a);
            else          printf("%d\n",mult);
            mult=1;

    }

 }

return 0;

}

现在是这样,还是不行啊

你好,这道题很像学校的题目啊,代码里求a的b次方的算法我没仔细看,不过在看到你while代码块里if(a9 ) continue;这一句,不知道是不是和你们

题目要求的条件符合不?如果用户输入的a=10,b=0时会不会符合条件

if(a9 ) continue;抱歉 复制粘贴是格式好像出了点问题