为什么我的代码突然停在这个C程序中?
我写了一个程序,你可以选择任何数字,并将其与任何数字的幂联系起来。代码运行正常,直到它到达某个部分,然后我必须输入一个字符,使其移动到代码的下一部分。我的意思是:为什么我的代码突然停在这个C程序中?,c,C,我写了一个程序,你可以选择任何数字,并将其与任何数字的幂联系起来。代码运行正常,直到它到达某个部分,然后我必须输入一个字符,使其移动到代码的下一部分。我的意思是: #include <stdio.h> int power (int x, int y); int power (int x, int y) { int i, b; i = 1; scanf ("%d", &x); scanf ("%d", &y); b = x;
#include <stdio.h>
int power (int x, int y);
int
power (int x, int y)
{
int i, b;
i = 1;
scanf ("%d", &x);
scanf ("%d", &y);
b = x;
for (i = 1; i < y; i++) {
x *= b;
}
return x;
}
int
main ()
{
int base, i;
printf ("Type the base number: ");
scanf ("%d", &base);
printf ("Type the power: ");
scanf ("%d", &i);
int final = power (base, i);
printf (" The power is %d ", final);
return 0;
}
#包括
整数幂(整数x,整数y);
int
功率(整数x,整数y)
{
int i,b;
i=1;
scanf(“%d”和&x);
scanf(“%d”和“&y”);
b=x;
对于(i=1;i
所以直到int final=power(base,i),一切都运行得很顺利,但是打印答案的代码的下一部分实际上并没有打印出来。它可以打印的唯一方法是,我在键盘上输入任意字符的时间,然后按回车键,当我输入数字的功率后按回车键时,它就会打印出来。任何关于修复此故障的建议,我对c相当陌生。您的
power
函数中包含scanf
s。它正在等待用户输入
scanf("%d",&x);
scanf("%d",&y);
它本质上意味着用您键入的数字填充x
和y
删除
scanf(“%d”和&x)代码>和scanf(“%d”和&y)电源中的代码>电源
;您已经将x
和y
作为main
中的参数传递给了power,在函数power中的代码中,您调用了两次“scanf”,这些调用和覆盖参数传递给了函数。删除这些“scanf”呼叫
如果您以这种方式修改代码,一切都将变得清晰:
int power(int x, int y)
{
int i,b;
i=1;
printf("before scanf no 1\n");
scanf("%d",&x);
printf("before scanf no 2\n");
scanf("%d",&y);
b=x;
for(i=1;i<y;i++)
{
x*=b;
}
return x;
}
整数幂(整数x,整数y)
{
int i,b;
i=1;
printf(“第1号扫描前”);
scanf(“%d”和&x);
printf(“第2号扫描前”);
scanf(“%d”和“&y”);
b=x;
对于(i=1;iIt)来说,缩进代码是很好的,但不会太多!它看起来大约有16或20个空格,当你减去那么多的时候,会有点不稳定。请小心并考虑周到。