我们的教授要求我们编写一个 C 程序,该程序将使用 while 循环显示数字的立方体
Our professor asked us to make a C program that will display the cube of a number using a while loop
当我输入一个负整数时,输出结果不会是它的立方值。我很困惑我该怎么办?
这是我的代码:
#include <stdio.h>
int main()
{
int n, i, cube;
printf("Enter an integer: ");
scanf("%d",&n);
while (i<=n)
{
cube = i*i*i;
i++;
}
printf("The cube of %d = %d\n ", n, cube);
return 0;
}
- 循环错误。
- 您的循环调用了未定义的行为,因为
i
未初始化。
您只需要:
long long cube(int n)
{
return n * n * n;
}
int main(void)
{
int x = -21;
while(x++ < 40)
printf("n=%d n^3 = %lld\n", x, cube(x));
}
或者如果你需要使用 while 循环:
long long cube(int n)
{
long long result = 1;
int power = 3;
while(power--) result *= n;
return result;
}
或者充满 while
而没有乘法。
long long cube(int n)
{
long long result = 0;
unsigned tempval = abs(n);
while(tempval--) result += n;
tempval = abs(n);
n = result;
while(--tempval) result += n;
return result;
}
我假设您希望使用迭代 3 次的循环来计算数字的立方。
int n, cube, i;
printf("Enter an integer: ");
scanf("%d",&n);
cube = 1;
i = 0;
while (i < 3)
{
cube = cube * n;
i++;
}
printf("%d\n", cube);
您只想要 1 个数字的立方体?
i = 0;
cube = 1;
while (i<3)
{
cube *= n;
i++;
}
当我输入一个负整数时,输出结果不会是它的立方值。我很困惑我该怎么办? 这是我的代码:
#include <stdio.h>
int main()
{
int n, i, cube;
printf("Enter an integer: ");
scanf("%d",&n);
while (i<=n)
{
cube = i*i*i;
i++;
}
printf("The cube of %d = %d\n ", n, cube);
return 0;
}
- 循环错误。
- 您的循环调用了未定义的行为,因为
i
未初始化。
您只需要:
long long cube(int n)
{
return n * n * n;
}
int main(void)
{
int x = -21;
while(x++ < 40)
printf("n=%d n^3 = %lld\n", x, cube(x));
}
或者如果你需要使用 while 循环:
long long cube(int n)
{
long long result = 1;
int power = 3;
while(power--) result *= n;
return result;
}
或者充满 while
而没有乘法。
long long cube(int n)
{
long long result = 0;
unsigned tempval = abs(n);
while(tempval--) result += n;
tempval = abs(n);
n = result;
while(--tempval) result += n;
return result;
}
我假设您希望使用迭代 3 次的循环来计算数字的立方。
int n, cube, i;
printf("Enter an integer: ");
scanf("%d",&n);
cube = 1;
i = 0;
while (i < 3)
{
cube = cube * n;
i++;
}
printf("%d\n", cube);
您只想要 1 个数字的立方体?
i = 0;
cube = 1;
while (i<3)
{
cube *= n;
i++;
}