0
Random Values
how to print the only same random value in array? #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); int arr[8]; for(int i=0;i<8;i++){ int random =rand()%10; arr[i]=random ; cout << arr[i]; } return 0; } ex : if array 21417823 the output : 2,1
8 Answers
+ 2
If their are few values (like for your array (8)) compared to the scale (for example from 0 to 100 000), then this one is better :
int main(){
int arr[8];
int sum, j;
srand(time(0));
for(int i=0;i<8;++i){
arr[i]=rand()%100000;
}
for(int i=0;i<8;++i){
sum=0;
j=0;
while(j<i && sum==0){
if(arr[j]==arr[i]){
++sum;
}
++j;
}
if(sum==0){
for(j=i;j<8;++j){
if(are[j]==arr[i]){
++sum;
}
}
if(sum>1){
cout<<arr[i]<<endl;
}
}
}
return 0;
}
+ 1
If the values are on a small scale (like here, from 0 to 9), I think the best way would be this one :
#include <vector>
int main(){
int arr[8];
vector<int> v(10,0);
srand(time(0));
for(int i=0;i<8;++i){
arr[i]=rand()%10;
}
for(int i=0;i<8;++i){
v[arr[i]]++;
}
for(int i=0;i<8;++i){
if(v[i]>1){
cout<<i<<endl;
}
}
return 0;
}
You can fuse the two first for loops.
+ 1
vector (example : vector<int> v) as properties in common with array (example : int arr[8]) but you do not define a size for the vector, it will manage itself (not without a cost of memory and time of course, but on small samples like yours, you should not see the difference). You can add to vector without worrying of its max size (but as I said, the bigger it become, the more expensive it will be in memory and in time)
0
can you give some examples of the result you want please?
0
ex : if the result of random array {2,1,4,1,7,8,2,3}
the output that i want is 2 and 1 bexause the values more than 1 so print it.
0
I.am sorry, what actually the function of vector ?
0
Vector is like an array, you can replace it
0
still dont know yet, but btw thx, i will learn more about vector