找出最大值,最小值,正数和负数
Find largest, smallest, positive and negative
我写了这段代码,我想让它找到负数的数量,最小的数字,最大的数字,数字的平均值,和数字的总和
它不能工作,你能帮我使用if
声明吗?我找不到最小或最大的数(当数是负数时),也找不到所有的数是负数还是正数,或者混合。
#include <iostream>
using namespace std;
void main() {
float num,
average,
sum,
smallest,
largest,
positive,
negative;
int count;
sum = 0;
count = 1;
largest = 0;
smallest = 0;
negative = 0;
while (count < 11) {
cout << "Number #" << count << ": ";
cin >> num;
if (num < 0) negative++;
sum += num;
average = (sum / 10);
if (num > largest) largest = num;
else if (num < smallest) smallest = num;
count++;
}
cout << endl << "The smallest number is " << smallest << endl;
cout << "The largest number is " << largest << endl;
cout << "The average of all numbers is " << average << endl;
cout << "The sum of all numbers is " << sum << endl;
cout << endl;
cout << "There are " << negative << " negative numbers." << endl;
if (num > 0) cout << "All numbers are positive.";
else if (sum < 0) cout << "All numbers are negative.";
else if {
cout << "There is a mixture of numbers.";
}
}
//------------------------------------编辑
我已经做了一些修改,我几乎是正确的,但我仍然找不到一个方法来找到最小和最大
using namespace std;
void main()
{
float num,
average,
sum,
largest,
smallest,
positive,
negative;
int count;
sum = 0;
count = 1;
negative = 0;
largest= 0;
smallest = 0;
while ( count < 11)
{
cout << "Number #" << count << ": ";
cin >> num;
if ( num < 0 )negative++;
sum += num;
if (count != 0 )
{
if ( num > largest )
largest = num;
else if ( num < smallest )
smallest = num;
}
count++;
}
average = ( sum / 10 );
cout << endl << "The smallest number is " << smallest << endl;
cout << "The largest number is " << largest << endl;
cout << "The average of all numbers is " << average << endl;
cout << "The sum of all numbers is " << sum << endl;
cout << endl;
cout << "There are " << negative << " negative numbers." << endl;
if ( negative == 0 )
cout << "All numbers are positive.";
else if ( negative == 10 )
cout << "All numbers are negative.";
else
{
cout << "There is a mixture of numbers.";
}
}
你不应该计算平均值,直到你得到所有的数字;或者如果你想要保持一个动态平均值,你需要除以目前的总和。所以不用
这行average = sum / 10;
在循环的中间,试试
average = sum / count;
在循环内,或者
average = sum / (count - 1);
循环后。当然,因为在循环完成之前,实际上并没有使用的平均值,所以这实际上并不重要——但是这有点草率。
接下来,你的代码if ( num > 0 )
cout << "All numbers are positive.";
else if ( sum < 0 )
cout << "All numbers are negative.";
有两个明显的错误。首先,你要检查"num"是否为正数——那是最后输入的数字,而不是"所有的数字"。如果有一个非常负的数,这个和就是负的。相反,使用你的负数计数:
if ( negative == 0) // all positive
if ( negative == 10) // all negative
否则,它是一个混合物。我相信你可以用这些指针来修复你的代码。
编辑# 2
我决定在一个完整的程序中实现我上面提到的所有更改,以及我在注释中提到的更改。我最终得到的代码是:
#include <iostream>
using namespace std;
int main()
{
float num,
average,
sum=0,
largest=0,
smallest=0,
positive=0,
negative=0;
int count=1;
negative = 0;
while ( count < 11)
{
cout << "Number #" << count << ": ";
cin >> num;
if ( num < 0 ) negative++;
sum += num;
if (count == 1) {
largest = num;
smallest = num;
}
else {
if ( num > largest )
largest = num;
if ( num < smallest )
smallest = num;
}
count++;
}
average = ( sum / (count - 1) );
cout << endl << "The smallest number is " << smallest << endl;
cout << "The largest number is " << largest << endl;
cout << "The average of all numbers is " << average << endl;
cout << "The sum of all numbers is " << sum << endl;
cout << endl;
cout << "There are " << negative << " negative numbers." << endl;
if ( negative == 0 )
cout << "All numbers are positive."<<endl;
else if ( negative == 10 )
cout << "All numbers are negative."<<endl;
else
{
cout << "There is a mixture of numbers.";
}
}
编译得很好;当我运行它并输入以下输入时:
Number #1: 5
Number #2: 4
Number #3: 3
Number #4: 2
Number #5: 1
Number #6: 0
Number #7: -1
Number #8: -2
Number #9: -3
Number #10: -4
我得到这样的输出:
The smallest number is -4
The largest number is 5
The average of all numbers is 0.5
The sum of all numbers is 5
There are 4 negative numbers.
There is a mixture of numbers.
在我看来它是有效的。它对你有用吗?
相关文章:
- 查找矩阵C++中每一列和每一行的最小和最大元素
- 如何在数组中交换最小和最大的位置?
- 需要使用模板查找数组的第二个最小和最小值
- 使用 std::min_element、std::max_element 查找矢量中的最小和最大元素
- 为什么我不能使用最小和最大这两个词作为变量名称?
- 在运行时为随机分布类成员设置最小和最大边界?
- 如何使用气泡排序从最小到最大对 4 个数组进行排序? C++
- 如何拒绝 cin 中的字符输入并定义最小和最大整数值
- 类型 *阵列的最小或最大值的类功能 *
- C++ 100 万个变量名称的最小和最大变量名称长度是多少
- 想要以正弦曲线的形式在循环中连续将值从最小变为最大
- 数组内存地址总是按最小到最大的顺序排列吗
- 使用向量而不是数组从最小到最大对数字进行排序C++
- 在 c++ 中给出两个整数向量(大小和类型相同),我想从最小到最大元素对一个进行排序,并更改第二个向量的顺序
- 在用户定义结构的向量中查找最小和最大元素的索引
- 二进制搜索,用于查找排序数组中比给定值最小和最大的元素
- c++中的函数如何以最小的复制返回值或引用?
- 我如何确定我可以传递给编译器选项的最小和最大值
- 如何为每个光栅带设置最小和最大颜色值(使用GDAL)
- 在c++中最小化分支-如果值是非零则递增