填空题:以下递归过程
以下递归过程
void test(int &sum)
{
int x;
scanf("%d", &x);
if (x == 0) sum = 0;
else
{
test(sum);
sum += x;
}
printf(sum);
}
借助栈改写为非递归过程,其中入栈函数为Push(S,x);出栈函数为Pop(S,x);
注意代码规范:二元操作符前后留空格,函数名后不加空格紧跟左括号,逗号后跟空格。
void test()
{
Stack S;
int x;
InitStack(S);
while (&& x)
{
Scanf("%d", &x);
}
printf(sum);
while ()
{
printf(sum);
}
}
}
答案:
第1空:scanf("%d", &x) ||
第2空:Push(S, x); ||
第3空:int sum = 0; ||
第4空:Pop(S, x) ||
第5空:sum += x; ||
void test(int &sum)
{
int x;
scanf("%d", &x);
if (x == 0) sum = 0;
else
{
test(sum);
sum += x;
}
printf(sum);
}
借助栈改写为非递归过程,其中入栈函数为Push(S,x);出栈函数为Pop(S,x);
注意代码规范:二元操作符前后留空格,函数名后不加空格紧跟左括号,逗号后跟空格。
void test()
{
Stack S;
int x;
InitStack(S);
while (&& x)
{
Scanf("%d", &x);
}
printf(sum);
while ()
{
printf(sum);
}
}
}
答案:
第1空:scanf("%d", &x) ||
第2空:Push(S, x); ||
第3空:int sum = 0; ||
第4空:Pop(S, x) ||
第5空:sum += x; ||