+ 1
How to write a c++ code that takes 10 integers and type them without repetition ?
Thanks
11 odpowiedzi
+ 3
#include <iostream.h>
void main(){
int nos[10], j=0, i=0;
int repeat=-1;
for(i=0; i<=10; i++){
//  to input nos. in array
   cout<<"Enter the no.";
   cin>>nos[i] //nos are stored
}
cout<<"The nos you typed are";
for(i=0!; i<=10; i++){
//comparing no with old no.
   for(j=0; j<i; j++){
      if( nos[I]==nos[j])
           repeat=i;
           break;
      }
//this will check its repeat or not
    if(i!=repeat) cout<<nos[i];
  }
}
// it can be by flags too
thanks to Abhishek for suggestions
c++ has inbuilt feature to do this so px16 has the normal code
+ 2
#include <iostream>
using namespace std;
int main() {
    int arr[10];
    bool flag = false;
    
    for(int i=0;i<10;i++)
    {
       cin >> arr[i] ;
    }
    
    for(int i=0;i<10;i++)
    {
       flag = false;
       for(int j=i-1;j>=0;j--)
       {
          if(arr[i] == arr[j])
          {
             flag = true;
             break; 
          }
       }
       
       if(!flag)
       cout << arr[i] << "  ";
    }
    
    return 0;
}
Plz VOTE UP if this helped :)
+ 2
#include <iostream>
using namespace std;
#include <set>
using std::set;
int main() {
    set<int> nums;
    for (int i = 0; i < 10; i++){
      int v;
      cin >> v;
      nums.insert(v);
    }
    for (auto v : nums)
      cout << v << endl;;
    return 0;
}
There is used std::set to make numbers unique. If you need to keep order, you may use set to verify if number was already provided and push back number to result std::vector or list. 
    set<int> nums;
    vector<int> result;
    for (int i = 0; i < 10; i++){
      int v;
      cin >> v;
      if (nums.find(v) == nums.end())
         result.push_back(v);
      nums.insert(v);
    }
    for (auto v : result)
      cout << v << endl;;
+ 2
Abhishek thanks for your suggestion the loop statement has been corrected it was to compare all no it's j is i-1
[6, 2, 6]
the idea is , in loop it will check nos[2] is equal to nos[0] or not if yes it will mark this element as repeat now after check loop ends it will not print nos[2 ] like nos[0] and nos[1] as nos[2] is marked as repeat.
the small loop should check all previous nos and report repetition.
+ 2
yes please suggest how to optimize
+ 1
i am not good in c++ but i recommend u to use int array, the length is 10 , then every time u need e for loop, in oder to check the value, because u do not wanna same value, so u need if, i hope , i can help u
+ 1
@sandeep chatterjee in your code at some point 'j' value will become same as 'i' so your below condition will always be true. 
if( nos[I]==nos[j])
           repeat=i;
which will set your repeat to i thus you will not get any output
+ 1
@sandeep chatterjee I hope you know if i==j then nos[i] will be equal to nos[j] since both i and j have same index value
+ 1
@sandeep chatterjee I see now you have changed condition in second loop condition now it is correct but you can still optimize it
+ 1
@sandeep chatterjee
for(j=0; j<i; j++){
      if( nos[I]==nos[j]){
           repeat=i;
           break;
        }
      }
break will stop the loop once it finds the number is a repeat
+ 1
good suggestion ok Abhishek that's good but I think it will work without it too rather it can be extended to count the missing no. if we add a counter that counts missing no.
I mean there is no problem in small program to mark repeat again repeat should be reported at least one time.
yes break or continue will give fast result but I have left this for counter







