【发布时间】:2020-06-01 20:12:15
【问题描述】:
我有一个生成 10 个随机数的代码,我需要计算非零数的总和和乘积,并显示已相乘的数字。我已经有了大部分代码,但我不知道如何将非零数字相乘然后显示它们。有人可以帮我吗?
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <windows.h>
using namespace std;
int main()
{
cout << "draws 10 numbers:" << endl;
Sleep(1000);
cout << endl;
srand(time(0));
int sum=0;
int product=1;
for(int i=0, value=0; i<10; i++, sum+=value, product*=value)
{
value = rand()%10+0;
Sleep(1000);
cout << value << endl;
}
Sleep(1000);
cout << "the sum is " << sum <<endl;
cout << "the product is " << product <<endl;
return 0;
}
【问题讨论】:
-
那么,你能用笔和纸将这些数字相乘并写出结果吗? 5,2,9,1?我问是因为我不确定你的问题是什么。
-
使用 if 语句。如果你生成的数字为零,不要加乘。
-
你需要使用
if语句:if (value != 0) { ...do these steps... } -
代替反复推荐的
if,您可以更优雅地确保没有0被绘制为随机数。尤其是这里value=0;和这里value = rand()%10+0;,零会困扰你。 -
自C++11以来,有更好的方法来生成随机数:en.cppreference.com/w/cpp/numeric/random/…,但请说明是否必须绘制10个数字并将非零相乘only值或您的任务是乘以 10 个随机数,它们都不同于零。