求助!!!!!!!新手问个简单的问题!!
我的目的是输入底数和指数,计算结果,并且能实现循环输入,而不会出现程序运行一次就跳出;#include<iostream>
using namespace std;
int myFunc(unsigned short x,unsigned short y);
int sum=1,i=1;
main()
{
int x=0,y=0;
int sum=1,i=1; //................................此处为标记处
double t;
cout<<"输入底数:";
cin>>x;
cout<<"\n输入指数:";
cin>>y;
t=myFunc(x,y);
cout<<"\n结果为:"<<t<<endl;
main();
return 0;
}
int myFunc(unsigned short a,unsigned short b)
{
if(i<=b)
{
sum*=a;
i++;
myFunc(a,b);
}
return sum;
}
编译没有错,当我运行的时候~~第一次输入出来结果是对的!!!但是再次输入时结果就出错!!
运行结果如下:
输入底数:3
输入指数: 2
结果为:9
输入底数:5
输入指数: 2
结果为:9
但是我在上面的标记处那行int 去掉,程序运行时就不会出错了,也就是 int sum=1,i=1;改成 sum=1,i=1;.程序就对了.
高手能给我解释下为什么吗?