2010-11-10 6 views
1

Mon code détaille le tableau. Comment afficher le nombre de fois que l'entier donné est répété et afficher les emplacements d'indice où il est répété?Nombre et occurrences d'affichage dans le tableau 2D

#include <iostream> 
#include <cmath> 
#include <iomanip> 
#include <ctime> 

using namespace std; 
int main() 
{ 
    int table [10][10]={{0},{0}}; 
    int repeat=0; 
    int count=0; 
    int r=0; 
    int c=0; 
    //seeding the random function 
    srand(static_cast<int>(time(0))); 

    for(r=0; r<10; r++)//row 
    { 
     for(c=0; c<10; c++) 
     { 
      table[r][c] = 50+rand() %(100-50+1); 
      cout << table[r][c]<<" "; 

     } 
     cout<<endl; 
    } 
    cout<<"Enter the number to know how many times it is repeated(50 to 100): "; 
    cin>>repeat; 
    for (int x=0; x<10; x++) 
    { 
     if(repeat==table[r][c]) 
      count+=1; 

    } 

    cout<<"the number "<<repeat<<" appeared"<<count<<" times."<<endl; 
    //display new line 

    system("pause"); 
} 
+2

Et votre question est? –

+0

Comment coder pour afficher le nombre de fois que l'entier donné est répété et afficher les emplacements d'indice où il est répété? – Luckwhy

+0

est-ce un problème de devoirs? –

Répondre

0

Je ne vois pas votre code de comptage itérer sur la matrice. 'x' n'est mentionné nulle part dans la boucle 'for'.

+0

oh ouais. maintenant il affiche le nombre de fois. Je vous remercie. – Luckwhy

+0

S'il vous plaît dites-moi comment afficher les emplacements des indices. – Luckwhy

0

Vous devez remplacer votre code:

for (int x=0; x<10; x++) 
{ 
    if(repeat==table[r][c]) 
     count+=1; 
} 

à ceci:

for (r = 0; r < 10; r ++) 
{ 
    for (c = 0; c < 10; C++) 
    { 
     if(table[r][c] == repeat) // checking 
      count ++; 
    } 
} 
+0

ye je l'ai fait et il affiche le nombre de fois. Je n'ai aucune idée de comment afficher l'emplacement de l'indice où le nombre est répété. – Luckwhy

+0

Veuillez aider à afficher les emplacements des indices où ils sont répétés. – Luckwhy

0

Il y a deux façons de le faire:

Vous pouvez afficher les emplacements en indice dans la boucle :

puts ("Locations:"); 
for (r = 0; r < 10; r ++) 
{ 
    for (c = 0; c < 10; C++) 
    { 
     if(table [r][c] == repeat)   // checking 
     { 
      printf ("[%i, %i]\n", r, c);  // display where it is 
      count ++; 
     } 
    } 
} 

Ou vous pouvez créer un tableau spécial d'indices rencontrés:

int rs [100]; // rows and columns indexes of repeated subscripts 
int cs [100]; // 

for (r = 0; r < 10; r ++) 
{ 
    for (c = 0; c < 10; C++) 
    { 
     if(table [r][c] == repeat)   // checking 
     { 
      // no printf code here 
      rs [count] = r; 
      cs [count] = c; 
      count ++; 
     } 
    } 
} 

// subscripts can be displayed or used in math algorithm now: 

puts ("Locations:"); 
for (int i = 0; i < count; i ++) 
    printf ("[%i, %i]", rs [i], cs [i]); 

La dernière méthode est pas optimale, mais il est adapté pour l'apprentissage C;) Bonne codage!