我正在做一个家庭作业,我在一个“for”循环中计算一个函数的整数区间 (f(x) = x * x – 12 * x + 40) 中的值。我需要找到一个最小值。没关系,但我还需要保留值最小的索引号。目前我在另一个循环中再次重申该功能,但这看起来真的很混乱。我也可以导出 x 并使用已知的最小值计算答案,但这也很奇怪,因为推导并不那么简单。你对我有什么建议吗?谢谢。
#include <iostream>
#include "limits.h"
using namespace std;
int main ()
{
int lBound, uBound, y, min;
cout << "Give the lower and the upper bounds of integer numbers: " << endl;
cin >> lBound >> uBound;
min=INT_MAX;
int x = lBound;
for (int i = x; i <=uBound; i ++) {
y = i * i - 12 * i + 40;
cout << x << " " << y << endl;
if (y<min) {
min=y;
}
x++;
}
for (int i = lBound; i <= uBound; i++) {
y = lBound * lBound - 12 * lBound + 40;
if (y==min) {
y = lBound;
i=uBound; // terminates the loop
}
lBound++;
}
cout << "smallest value of the function is " << min << " for x = " << y << endl;
return 0;
}