C++编程问题,为什么总显示:使用了未初始化的局部变量
voidThird_question_3_3(){cout<<"请依次输入5个数字"<<endl;intch[5];intT;stack<int>s,ss;gototo_...
void Third_question_3_3(){
cout << "请依次输入5个数字" << endl;
int ch[5];
int T;
stack<int> s, ss;
goto to_T;
for (int i = 0; i < 5; i++){
cin >> ch[i];
}
for (int i = 0; i < 5; i++){
s.push(ch[i]);
}// 初始化栈S;
int temp_t = s.top();
for (int a = 0; a < 4; a++)
{
for (int j = 0; j <4; j++)
{
ss.push(s.top());
s.pop();
}
T = s.top();
to_T: s.push(T);
s.pop();//此时栈S已经为空;
while (!ss.empty())
{
if (ss.top() == temp_t)//寻找到T元素插入的位置;
{
s.push(temp_t);
ss.pop();
goto to_T;//跳转,将T元素插入栈S;
}
s.push(ss.top());
ss.pop();
}
}//实现了栈S的逆置;
for (int l = 0; l < 5; l++)
{
cout << s.top() << endl;
s.pop();
}
system("PAUSE");
}
请教,编译器提示:使用了未初始化的局部变量“a”,"temp_t"
这是为什么呢?我明明已经赋初值int a=0了啊?temp_t只是一个中间变量啊? 展开
cout << "请依次输入5个数字" << endl;
int ch[5];
int T;
stack<int> s, ss;
goto to_T;
for (int i = 0; i < 5; i++){
cin >> ch[i];
}
for (int i = 0; i < 5; i++){
s.push(ch[i]);
}// 初始化栈S;
int temp_t = s.top();
for (int a = 0; a < 4; a++)
{
for (int j = 0; j <4; j++)
{
ss.push(s.top());
s.pop();
}
T = s.top();
to_T: s.push(T);
s.pop();//此时栈S已经为空;
while (!ss.empty())
{
if (ss.top() == temp_t)//寻找到T元素插入的位置;
{
s.push(temp_t);
ss.pop();
goto to_T;//跳转,将T元素插入栈S;
}
s.push(ss.top());
ss.pop();
}
}//实现了栈S的逆置;
for (int l = 0; l < 5; l++)
{
cout << s.top() << endl;
s.pop();
}
system("PAUSE");
}
请教,编译器提示:使用了未初始化的局部变量“a”,"temp_t"
这是为什么呢?我明明已经赋初值int a=0了啊?temp_t只是一个中间变量啊? 展开
3个回答
展开全部
直接goto的话就是未初始化的吧,未执行初始化代码
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议代码里面尽量不要使用goto语句,这样会使得程序的逻辑性变差
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
跟你的goto语句有关系吧,goto删了看看
(追加,洗洗睡,明天弄吧)
(追加,洗洗睡,明天弄吧)
更多追问追答
追问
删掉了goto语句后的确编译器没有报错,但是程序运行的结果不对啊
追答
stack s, ss;
goto to_T;
for (int i = 0; i > ch[i];
},这里的goto是为了什么
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询