显示将来自用户输入的数组的最小值和最大值
Show min and max values of array that will come from user input
我正在制作一个简单的程序,它将要求输入,将其放入数组(数字[i])中并将其转换为三个不同的单位。将其转换为不同的单位后,我必须能够显示用户给出的最低和最高数字。
我正在使用 do while 循环从用户那里获取输入,在do while loop
之后,我放了一个for loop
,它将根据 number[i] 数组内的输入计算最小和最大数字。但是输入 2 个输入后,程序只向我显示最高数字,最低数字显示我0
.
这是它的样子。
do{
clrscr();
cout<<"Enter a number:";
cin>>number[i];
cout<<"nPlease choose a unit";
cout<<"n<A> meter";
cout<<"n<B> centimeter";
cout<<"n<C> inch";
cout<<"n<D> feet";
cout<<"nPlease enter your chosen unit: ";
cin>>unit;
switch(unit)
{
case 'a':
case 'A':
i=0;
m = number[i] * 1;
cm = 1000 * m;
in = m / 0.0254;
ft = m/0.3048;
cout<<"nYou have chosen meter for unit";
cout<<"nYou have entered "<<number[i]<<" meters";
cout<<"n"<<m<<" meters is equal ton"<<cm<<" centimeters";
cout<<"n"<<in<<" inches";
cout<<"n"<<ft<<" feet";
cout<<"nnDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
case 'b':
case 'B':
cm = number[i] * 1;
m = cm /1000;
in = cm * 0.393701;
ft = cm * 0.0328084;
cout<<"nYou have chosen centimeter for unit";
cout<<"nYou have entered "<<number[i]<<" centimeters";
cout<<"n"<<cm<<" centimeters is equal ton"<<m<<" meters";
cout<<"n"<<in<<" inches";
cout<<"n"<<ft<<" feet";
cout<<"nnDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
break;
}
break;
case 'c':
case 'C':
in = number[i] * 1;
m = in * 0.0254;
cm = in * 2.54;
ft = in * 0.0833333;
cout<<"nYou have chosen inches for unit";
cout<<"nYou have entered "<<number[i]<<" inches";
cout<<"n"<<in<<" inches is equal ton"<<m<<" meters";
cout<<"n"<<cm<<" centimeters";
cout<<"n"<<ft<<" feet";
cout<<"nnDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
case 'd':
case 'D':
ft = number[i] * 1;
m = ft*0.3048;
in = ft*12;
cm = ft * 30.48;
cout<<"nYou have chosen feet for unit";
cout<<"nYou have entered "<<number[i]<<" feet";
cout<<"n"<<ft<<" feet is equal ton"<<m<<" meters";
cout<<"n"<<cm<<" centimeters";
cout<<"n"<<in<<" inches";
cout<<"nnDo you want to input another value? y/n:";
cin>>y;
if(y=='y')
{
x=1;
}
else if(y=='n')
{
x=0;
}
break;
default:
cout<<"nYou have entered an invalid choice!";
x=1;
break;
}
}while(x==1);
for(i=0; i<sizeof(number)/sizeof(*number);i++)
{
if(mn>number[i])
{
mn=number[i];
}
else if (mx<number[i])
mx= number[i];
}
cout<<"nHighest number is : "<<mx;
cout<<"nLowest number is: "<<mn;
如果您获得最低数字输出的最高数字,则第二个cout
语句中存在错误,则您继续具有mx
的输出
当前您使用mx
作为最低数字
cout<<"nLowest number is: "<<mx;
固定
cout<<"nLowest number is: "<<mn;
使用minmax
:
const auto result = minmax(cbegin(number), cend(number));
cout << "nHighest number is : " << result.first << "nLowest number is: " result.second << endl;
您正在将i
与number[i]
进行比较,而是将其与number
的大小进行比较。
相关文章:
- 使用递归的数组的最小值.这是怎么回事
- 在二维数组中查找最小值和最大值?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 需要使用模板查找数组的第二个最小和最小值
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 查找包含 N 个元素的数组的最小值和最大值
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在索引0为0的数组中查找非零最小值C++
- 使用数组将最后一个最大值更改为第一个最小值
- 以 C/C++ 为单位的数组中最小值的地址
- 如何在给定数组的任何子数组(任何大小)中找到最大值(或最小值)?
- 有没有办法在递归中使用指针来查找数组的最小值?
- 构造大小为 N 的数组 A 和大小为 1 的数组 A,使得所有 A[i]*A[j] 的总和为最小值和正数。1 <= i < j <= N
- C++数组的最大值、最小值、平均值函数
- 数组中最小值的总和
- C 递归找到数组的最小值
- 从二维数组中查找最小值和最大值
- 使用函数从数组中索引最小值的问题
- 未初始化数组中的最小值和最大值