通过用户输入在 C++ 中查找最大值和最小值
Finding Maximum and Minimum values in c++ by user input
我想知道如何通过用户输入值在 C++ 中找到最大值和最小值,并且用户还设置了 for 循环的限制,例如:
编写一个 C++ 程序,最初从用户那里获取一个整数值作为循环的限制。这意味着循环将执行与用户输入相同的时间。然后循环将采用整数值作为用户的输入,直到达到循环限制。
您只需要使用一个变量,该变量将用于在循环内重复从用户那里获取输入。这意味着您不得为此目的使用数组或多个变量。之后,您的程序将计算输入值的总和、它们的平均值、最小值和最大值以及输入这些值的位置。
我写了但卡在最大值和最小值..这里是
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
using namespace std;
int main(){
int value;
int ivalue;
int sum=0;
int average;
int x,y;
cout << "Enter loop limit : "; cin >> value ;
cout<<endl;
cout<<endl;
for( x=0;x<=value-1;x++){
cout << "Enter "<<x+1<<" value : "; cin >> ivalue;
sum=sum+ivalue;
}
cout<<endl;
cout<<endl;
cout << "Sum of entered values : " <<sum <<endl;
cout << "Average of entered values : "<< sum/value<<endl;
}
您应该将最大值定义为可能的最低值:
int maximum = -INFINITY;
然后在每个值进行比较并在必要时设置新的最大值:
if (ivalue > maximum)
maxumum = ivalue;
至少您会使用相同类型的逻辑...
为确保输入的任何值都大于您初始化 "max" 的值,您需要将其初始化为可能的最小整数值。
int max = INT_MIN;
出于同样的原因,您将需要为最低限度执行相反的操作。
int min = INT_MAX;
您还需要跟踪循环的迭代,以便找到输入最大值和最小值时的位置。
int count = 1;
在循环的每次迭代中,您将递增计数变量。
count++;
现在您将需要两个变量来跟踪最大值和最小值的位置。
int maxPos = 1;
int minPos = 1;
我们可以将位置初始化为一个,因为我们知道至少第一个用户输入的值将是我们新的最大值和最小值。
然后,在您的 for 循环中,您需要测试用户输入的值是否大于当前最大值,如果是,则将该值设置为新的最大值并更新位置。
if (ivalue > max) {
max = ivalue;
maxPos = count;
}
您还需要测试最小值并在用户输入的值小于当前最小值时分配它并更新位置。
if (ivalue < min) {
min = ivalue;
minPos = count;
}
int input;
int max = 0;
int min = 0;
cout << "Enter number: ";
while (input != -1)
{
cin >> input;
if(input != -1)
{
if(input > max)
{
max = input;
}
if(input < min)
{
min = input;
}
}
}
cout <<"Max: " << max << " Min " << min << endl;
}
我想知道如何通过用户输入值在 C++ 中找到最大值和最小值,并且用户还设置了 for 循环的限制,例如:
编写一个 C++ 程序,最初从用户那里获取一个整数值作为循环的限制。这意味着循环将执行与用户输入相同的时间。然后循环将采用整数值作为用户的输入,直到达到循环限制。 您只需要使用一个变量,该变量将用于在循环内重复从用户那里获取输入。这意味着您不得为此目的使用数组或多个变量。之后,您的程序将计算输入值的总和、它们的平均值、最小值和最大值以及输入这些值的位置。
我写了但卡在最大值和最小值..这里是
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string>
using namespace std;
int main(){
int value;
int ivalue;
int sum=0;
int average;
int x,y;
cout << "Enter loop limit : "; cin >> value ;
cout<<endl;
cout<<endl;
for( x=0;x<=value-1;x++){
cout << "Enter "<<x+1<<" value : "; cin >> ivalue;
sum=sum+ivalue;
}
cout<<endl;
cout<<endl;
cout << "Sum of entered values : " <<sum <<endl;
cout << "Average of entered values : "<< sum/value<<endl;
}
您应该将最大值定义为可能的最低值:
int maximum = -INFINITY;
然后在每个值进行比较并在必要时设置新的最大值:
if (ivalue > maximum)
maxumum = ivalue;
至少您会使用相同类型的逻辑...
为确保输入的任何值都大于您初始化 "max" 的值,您需要将其初始化为可能的最小整数值。
int max = INT_MIN;
出于同样的原因,您将需要为最低限度执行相反的操作。
int min = INT_MAX;
您还需要跟踪循环的迭代,以便找到输入最大值和最小值时的位置。
int count = 1;
在循环的每次迭代中,您将递增计数变量。
count++;
现在您将需要两个变量来跟踪最大值和最小值的位置。
int maxPos = 1;
int minPos = 1;
我们可以将位置初始化为一个,因为我们知道至少第一个用户输入的值将是我们新的最大值和最小值。
然后,在您的 for 循环中,您需要测试用户输入的值是否大于当前最大值,如果是,则将该值设置为新的最大值并更新位置。
if (ivalue > max) {
max = ivalue;
maxPos = count;
}
您还需要测试最小值并在用户输入的值小于当前最小值时分配它并更新位置。
if (ivalue < min) {
min = ivalue;
minPos = count;
}
int input;
int max = 0;
int min = 0;
cout << "Enter number: ";
while (input != -1)
{
cin >> input;
if(input != -1)
{
if(input > max)
{
max = input;
}
if(input < min)
{
min = input;
}
}
}
cout <<"Max: " << max << " Min " << min << endl;
}