我有一个数组变量,说中的示例: -如何查找数组中存在的元素的数量?
int a[10];
并假设我已经加入4-元件说1,2,3,4
开始从a[0]
直到a[3]
。 现在我该如何发现数组变量a
中存在多少元素,其最大大小为10
?
我的方式来获得在阵列假设用户在元素的数量将会给输入大于或等于零: -
#include<iostream>
using namespace std;
#define SIZE 10
int main(){
int *a = (int*)malloc(sizeof(int)*SIZE);
int iCount=0;
int iNumberOfElements,iElements;
cout<<"\nEnter the number of elements to be entered:";
cin>>iNumberOfElements;
cout<<"\nEnter the elements(Please enter elements greater than or equal to zero):\n";
for (int jIndex = 0; jIndex < iNumberOfElements; jIndex++){
cin>>iElements;
while(iElements<0){
cout<<"\nPlease enter the element greater than or equal to Zero.\nRe-enter:\n";
cin>>iElements;
}
a[jIndex] = iElements;
}
for(int iIndex=0;iIndex<SIZE;iIndex++){
if(a[iIndex] >= 0){ //I am checking in this way assuming that user will give input >= 0
iCount++;
}
}
cout<<"\nThe total number of element present in the array is:"<<iCount<<endl;
return 0;
}
是否存在任何其他方式来判断哪个位置包含垃圾值? – Abhineet
号有两种方法可以初始化数组,或者不使用。当你声明它时,它包含随机垃圾,或者它包含一个常用常量,通常为0(因为它是一个* int *数组)。无论哪种方式,你自己必须跟踪你是否设置了一个元素。没有标志或位,或者任何可以告诉你是否设置了数组元素的内容。如果数组元素在声明时被初始化为0,并且您必须检查以确保(并且我的意思是检查编译器文档,而不是现在会发生什么*发生),那么您可以使用0作为魔法值。 –
这个较旧的Stackoverflow线程,[如何在C中初始化一个数组],(http://stackoverflow.com/questions/201101/how-to-initialize-an-array-in-c/201116#201116),很好讨论将数组的所有条目设置为相同的值(如果零是“魔术”值,则最简单)。 – hardmath