数组元素编号
Array element number
我需要一些简单程序的帮助。不 - 这不是我的家庭作业(我正在为自己学习 Cpp,将来可能会使用它(所以是的。我有一个程序,它读取数组大小10
,然后将数字放入其中{2.56, 1.598, 0, 5.15, 0, 3.012, 10, 4.789, 2.569, 0}
程序应该忽略0
,确实如此,但问题是。我需要获取数字放置在数组中的数字(最小的数字是数组中的1.598
及其2
(同时,我在最大的数字上得到第 8
个(如果忽略零,应该5
(最小的1
。我该如何解决这个问题?这是最大数字的空白:
void Biggest(float array[], int n, float &max, int &maxNr)
{
max = array[0]
for (int i = 1; i < n; i++){
if (array[i] == 0)
continue;
if (array[i] > max){
max = array[i];
maxNr = i;
}
}
}
印刷空隙 :
void Print(float min, float max, double avg, int maxNr, int minNr)
{
ofstream info;
info.open("result1.txt");
info << "Biggest: " << max << " Number : " << maxNr << endl;
info << "Smallest: " << min << " Number : " << minNr << endl;
info << "Average: " << avg << endl;
info.close();
}
而且都是主要的。
int main(){
float array[100];
int n;
float max;
float min;
double avg;
int maxNr, minNr;
Reading(array, n);
Biggest(array, n, max, maxNr);
Smallest(array, n, min, minNr);
Average(array, n, avg);
Printing(min, max, avg, maxNr, minNr);
return 0;
}
首先,数组索引从 0
开始,而不是1
。
如果你想得到忽略零的位置,你需要使用一个与用于索引数组的计数器变量不同的计数器变量,这样当你跳过0
时不会增加它。
void Biggest(float array[], int n, float &max, int &maxNr)
{
max = array[0];
int position = 0;
for (int i = 0; i < n; i++){
if (array[i] == 0) {
continue;
}
if (array[i] > max){
max = array[i];
}
position++;
}
maxNr = position;
}
大多数(我能想到的(编程语言中的数组从索引零开始。因此,只需将 for 循环条件更改为:
for (int i = 0; i < n; i++)
因为您希望循环从数组中的第一个元素开始,所以 i 必须初始化为 0。这应该可以解决您在使用阵列时遇到的问题。
相关文章:
- 数组元素打印的递归方法
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 为什么使用数组元素查找最大数字的程序不起作用?
- 数组元素更改值?
- 如何访问宏中定义的数组元素
- 将数组元素递增 1
- C++函数,它将数组、谓词和运算符作为参数,并将运算符应用于满足谓词的数组元素
- 存储指向动态数组元素的指针
- C++通过别名指针以静默方式将错误的类型分配给数组元素
- 在 std::map 中插入数组元素
- 使用指针访问数组元素时出现意外结果
- c++ 使用动态分配运算符反向数组元素
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- 缺少数组元素问题
- 如何在类中制作 2D 数组元素,然后在其构造函数中指定其维度?
- 创建一个函数来转换数组元素的类型并返回数组的地址
- 删除在结构 c++ 中声明的数组元素
- Getter 和 Setter 用于类 C++ 中的数组元素
- 尝试递归获取数组元素的总和
- 数组元素编号