Closed. This question needs to be more
focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅通过
editing this post专注于一个问题。
2个月前关闭。
我是一个新手程序员,我想问一下如何在数组中存储双精度或浮点型可变数字。
例如,如果我有一个变量表示8-12位数字的学生证号码,则必须将前一个变量中的每个号码存储到数组中,而忽略浮点数。
就像人们已经评论过一样,您的代码有多个问题。我认为,您要解决的是某种家庭作业。除非您的教授/讲师/老师明确要求使用数组或禁止使用标准容器,否则我会选择std :: vector之类的东西。这样更简单,工作更少,更不易出错。但是,如果您坚持使用数组:
C ++不允许这样的事情:
double scn[num] = {0};
仅当在编译时(编写代码时)知道scn的长度/大小时,此语法才有效。
所以这可以工作:
double scn [12] = {0};
这样:
const size_t length = 12;
double scn[length] = {0};
为什么行得通?因为我们预先知道数组的长度:始终为12。第二个示例中的const表示您不能更改length的值。
正如您可能已经知道的那样,您在编译时不知道大小,因为它取决于用户输入。
那么如何创建数组?好了,使用动态内存分配:
int num;
cin>>num;
double* scn = new double[num];
// do something here
// free the memeory once you no longer need the array
delete[] scn;
// Whatever you do, do NOT use scn anymore. Once it is deleted, it is no longer
// safe to use
从您的代码来看,您绝对应该学习一些C ++教程或书籍,因为您似乎已经对基本知识有所了解。
我认为,这是迄今为止我遇到的最好的C ++教程:
https://www.learncpp.com/如果要直接跳转到动态分配数组:
https://www.learncpp.com/cpp-tutorial/6-9a-dynamically-allocating-arrays/。
不过,我的建议是首先查看有关指针的章节,因为动态内存分配与指针紧密相关。