gpt4 book ai didi

c - 我无法让这个(简单的)循环正常工作

转载 作者:行者123 更新时间:2023-12-01 14:45:10 26 4
gpt4 key购买 nike

我现在正在上编程课,被要求创建一个程序来计算用户输入的多个数字的总和——然后计算总和的 n 次方根。如果他们输入的数字小于 0,则循环应该丢弃小于 0 的数字,然后再次询问。

不幸的是,无论我输入什么数字——它都显示“值需要大于零!”我尝试在循环中加入一个 fflush(stdin); 语句,但这似乎没有做任何事情。

这是我的代码。我非常感谢所有帮助。

#include "stdafx.h"
#include <stdio.h>
#include <math.h>

int main() {

int mTotalNums, mNth; //amount of numbers in set
float mProd = 1, x, mNroot;

printf("How many numbers are in the set?\n");
scanf("%i", &mTotalNums);

mNth = mTotalNums; //set the value of mTotalNums equal to mNth becuase we'll lose the original value of mTotalNums after the loop

while (mTotalNums > 0) {
printf("Input number: ");
scanf("%lf", &x);
if (x > 0) {
mProd *= x;
} else
printf("\nValue needs to be greater than zero!\n");
}

mNroot = pow(mProd, (1 / mNth));

printf("\nThe nth root of the product of %i terms is: %.2f\n", mNth, mNroot);

return 0;
}

最佳答案

"%lf"double 的 scanf 格式,但 x 被声明为 float。要扫描 float ,您必须使用 %f 格式。

另请注意,mTotalNums 在循环中不会递减,因此它永远不会终止。

关于c - 我无法让这个(简单的)循环正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22080624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com