在 C++ 中计算数组中两个给定元素之间的元素个数
给定一个包含整数元素的数组和两个数字 start 和 end,任务是计算数组中 start 和 end 之间存在的元素个数。
数组是一种数据结构,可以存储固定大小的相同类型元素的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型的变量集合更有用。如果起始元素出现多次,我们将考虑起始元素的第一次出现;如果结束元素出现多次,我们将考虑结束元素的最后一次出现。
例如
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
Start = 1 and End = 7
Output − count is 5说明 - 在给定的数组中,有 7 个元素,范围是 1-7。因此,在这个范围之间,共有 5 个元素。
Input − int arr[] = {1, 2, 3, 4, 5, 6, 7}
Start = 7 and End = 9
Output − count is 0说明 - 在给定的数组中,有 7 个元素,范围是 7-9。因此,在这个范围之间,没有元素,所以计数为 0。
下面程序中使用的方案如下
输入一个数组,例如,int arr[]
使用 length() 函数计算两个数组的长度,该函数将根据数组中的元素返回一个整数值。
从 i 为 0 开始循环,直到 i 小于数组的大小
在循环内,检查 arr[i] 是否等于 start,如果是,则中断循环
检查 i 是否大于 size-1,如果是,则返回
使用另一个循环,从 j 为 size-1 开始,直到 j 大于等于 i+1,并递减 j
检查 arr[j] 是否等于 end,如果是,则中断循环
检查 j 是否等于 1,如果是,则返回 0
返回 j-i-1
打印结果。
示例
#include <iostream>
using namespace std;
// For counting the numbers between the two elements
int countelements(int ar[], int n, int start, int end){
// Find start
int i = 0;
for (i = 0; i < n; i++){
if (ar[i] == start){
break;
}
}
// If start is not present or present at the last
if (i >= n-1){
return 0;
}
// Find end
int j;
for (j = n-1; j >= i+1; j--){
if (ar[j] == end){
break;
}
}
// If end is not present
if (j == i){
return 0;
}
// number of elements between the two elements
return (j - i - 1);
}
// Main Function
int main(){
int ar[] = { 1, 6, 2, 5, 9, 8, 3, 7, 4 };
int n = sizeof(ar) / sizeof(ar[0]);
int start = 5, end = 4;
cout <<"count is " <<countelements(ar, n, start, end);
return 0;
}输出
如果我们运行以上代码,我们将得到以下输出:
count is 4
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP