我对C编程语言的while函数有问题。它运行了太多次,忽略了结束条件。
#include <stdio.h>
int main()
{
long long int lenX,lenY,cube,needX,needY,i,t = 0;
scanf("%lld%lld%lld", &lenX,&lenY,&cube);
while (needX <= lenX)
{
needX + cube;
i++;
}
while (needY <= lenY)
{
needY + cube;
t++;
}
printf("%lld\n",i*t);
return 0;
}当输入6 6 4(答案应该是4)时,输出范围从-8519971516809424873到0。
如果我错过了一些明显的事情我很抱歉。我对C语言很陌生
编辑:它不关心数字
#include <stdio.h>
int main()
{
long long int lenX,lenY,cube,needX,needY;
scanf("%lld%lld%lld", &lenX,&lenY,&cube);
while (needX*cube <= lenX)
{
needX = 574973;
}
while (needY*cube <= lenY)
{
needY = 4057348;
}
printf("%lld %lld %lld\n",needX*needY,needX,needY);
return 0;
} 静态输出:409600 100 4096
发布于 2022-08-28 20:49:32
这些表达式语句
needX + cube;和
needY + cube;没有效果。
看来你是说
needX += cube;和
needY += cube;请注意,变量needX、needY i未初始化,导致未定义行为。
本声明
long long int lenX,lenY,cube,needX,needY,i,t = 0;仅将变量t初始化为零。
您需要重写声明,至少如下
long long int lenX,lenY,cube,needX = 0,needY = 0,i = 0,t = 0;https://stackoverflow.com/questions/73522152
复制相似问题