c++ - 数字生成 C++

标签 c++ visual-c++

在你的作业 1 中,你将编写一个程序来生成你类所有学生的成绩, 并计算分布。假设如下:

(1) 你所在类(class)的学生人数是[131, 162]之间的随机数。 (2) 每个学生的成绩是[10, 100]之间的随机整数。 (3) 如果等级在[10, 59],字母等级为F;如果等级在[60, 74],字母等级为C; 如果等级在[75, 84],字母等级为B;如果等级在 [85, 100] 之间,则字母等级为 A。 (4) 计算最高分(point grade, not letter grade)和最低分(point grade)。 (4) 对于您的最终输出,请打印以下内容: -- 我类有*个学生! <-- 一个 B的 C 的 F 的 -- 最高等级是! -- 最低等级是 **!

请注意,您需要将这些* 替换为您从程序中生成的数字。示例输出的屏幕截图可以在附件中找到;请注意其中的数字只是随机生成的。

我很难完成这项作业的第一部分,因为您必须在指定范围内生成 # 个学生。

这是我在做的事情

    int randomN;
randomN = rand()% 31+131;

它显然给了我一个数字。我在实现时遇到的麻烦是,将数字放入一个范围从 1 到随机数的数组中。我以前用过 MATLAB,在那里你会做类似 x = 1:randomN 的事情,它会生成一个数组。我如何在 C++ 上执行此操作?如果你必须使用循环,你能给我一些提示吗?谢谢。

最佳答案

创建一个在给定范围内生成随机数的函数。您可以在网上找到很多,尽管您似乎几乎拥有它:

//return random number from min to max, 
//but not including max, i.e in range [min,max)
int randN(const int min, const int max)
{ 
  return rand() % (max-min)+min; 
}

上述在随机性方面存在一些问题,但对于这个项目来说这不是一个大问题。现在您可以像这样调用该函数:

//generate random number from 10 to 100
const int randomGrade = randN(10,101); 
const int randomNumberOfStudents = randN(131,163); 

关于c++ - 数字生成 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16888321/

相关文章:

带有 bool 值的 C++ 位域打包

visual-c++ - Cl.exe 返回错误代码 D8050

c++ - 错误 LNK2019 : unresolved external symbol "public: __thiscall

c++ - 使用 Visual Studio 2013 构建 Qt 5.2.1 的静态版本

c++ - GetKeyboardLayout 返回奇怪的布局

visual-c++ - 我想崩溃我的 mfc 应用程序

c++ - MSVC 默认内存对齐为 8

java - 如何在 JNI 中返回一个数组?

c++ - 在 #define 的开头使用下划线作为包含守卫

C++ 多线程 : is initialization of a local static lambda thread safe?