调用随机函数rand,生成并记录(保存)40个整数,整数取值范围为[-50,
50],统计所有数的和、其中正数的和及正数的个数、负数的和及负数的个数,
并输出结果。要求:
40个整数分5行输出,每行8个数据,右对齐;
#include <iostream>
#include <iomanip>
#include <ctime>
#include <cstdlib>
int main()
{
const int N = 40;
int nums[N];
int count_pos = 0, sum_pos = 0, count_neg = 0, sum_neg = 0;
std::srand(std::time(0));
for (int i = 0; i < N; i++)
{
nums[i] = static_cast<int>(-50 + 100.0 * rand() / RAND_MAX);
if (nums[i] > 0)
{
count_pos++;
sum_pos += nums[i];
}
else if (nums[i] < 0)
{
count_neg++;
sum_neg += nums[i];
}
}
for (int i = 0; i < N; i++)
{
std::cout << std::setw(5) << std::right << nums[i];
if ((i + 1) % 8 == 0)
std::cout << '\n';
}
std::cout << "Number of positive numbers: " << count_pos << '\n'
<< "Sum of positive numbers: " << sum_pos << '\n'
<< "Number of negative numbers: " << count_neg << '\n'
<< "Sum of negative numbers: " << sum_neg << '\n';
return 0;
}