Αναζήτηση σε πίνακα

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
VagosM
Δημοσιεύσεις: 46
Εγγραφή: 03 Νοέμ 2010 20:19

Αναζήτηση σε πίνακα

Δημοσίευση από VagosM » 08 Δεκ 2010 21:00

Για σας θα γράψουμε πρόοδο και έχω μια μικρή απορία..
Πως κάνω αναζήτηση σε έναν δισδιάστατου πίνακα για την εύρεση μεγαλύτερου και μικρότερου ανά στήλη?

Κώδικας: Επιλογή όλων

for&#40;i=0;i<N;i++&#41;
    min&#91;0&#93;&#91;j&#93;=0;
    for&#40;j=0;j<M;j++&#41;
    if &#40;board&#91;i&#93;&#91;j&#93;<min&#91;i&#93;&#91;j&#93;&#41;
    min&#91;i&#93;&#91;j&#93;=board&#91;i&#93;&#91;j&#93;;

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Αναζήτηση σε πίνακα

Δημοσίευση από virxen75 » 08 Δεκ 2010 22:55

κάπως έτσι

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define M 5
#define N 8

int main&#40;&#41;&#123;
    srand&#40;time&#40;NULL&#41;&#41;;
    int board&#91;M&#93;&#91;N&#93;;
    int max&#91;N&#93;=&#123;0&#125;,min&#91;N&#93;=&#123;0&#125;;
    int i,j;
    for &#40;i=0;i<M;i++&#41;&#123;//gemisma me tyxaious ari8mous
        for &#40;j=0;j<N;j++&#41;
            board&#91;i&#93;&#91;j&#93;=rand&#40;&#41;%100+1;
    &#125;
    for &#40;i=0;i<M;i++&#41;&#123;//emfanisi stin o8oni
        for &#40;j=0;j<N;j++&#41;
            printf&#40;" %3d ",board&#91;i&#93;&#91;j&#93;&#41;;
        printf&#40;"\n"&#41;;
    &#125;  
    
    for &#40;i=0;i<N;i++&#41;&#123;//stiles
        min&#91;i&#93;=board&#91;0&#93;&#91;i&#93;;
        max&#91;i&#93;=board&#91;0&#93;&#91;i&#93;;
        for &#40;j=0;j<M;j++&#41;&#123;//grammes
            if &#40;board&#91;j&#93;&#91;i&#93;>max&#91;i&#93;&#41;
                max&#91;i&#93;=board&#91;j&#93;&#91;i&#93;;
            else if &#40;board&#91;j&#93;&#91;i&#93;<min&#91;i&#93;&#41;
                        min&#91;i&#93;=board&#91;j&#93;&#91;i&#93;;
        &#125;
    &#125;
    printf&#40;"\nmin ana stili\n"&#41;;
    for &#40;i=0;i<N;i++&#41;
        printf&#40;" %3d ",min&#91;i&#93;&#41;;
    printf&#40;"\nmax ana stili\n"&#41;; 
    for &#40;i=0;i<N;i++&#41;
        printf&#40;" %3d ",max&#91;i&#93;&#41;;         
    getchar&#40;&#41;;
    return 0;
&#125;


VagosM
Δημοσιεύσεις: 46
Εγγραφή: 03 Νοέμ 2010 20:19

Αναζήτηση σε πίνακα

Δημοσίευση από VagosM » 12 Δεκ 2010 17:53

Ευχαριστώ παρα μα πάρα πολύ...

VagosM
Δημοσιεύσεις: 46
Εγγραφή: 03 Νοέμ 2010 20:19

Αναζήτηση σε πίνακα

Δημοσίευση από VagosM » 12 Δεκ 2010 19:38

και πως γινεται ανα γραμμή να κάνουμε αναζήτηση;

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Αναζήτηση σε πίνακα

Δημοσίευση από virxen75 » 12 Δεκ 2010 20:35

VagosM έγραψε:και πως γινεται ανα γραμμή να κάνουμε αναζήτηση;
ανά γραμμές.....

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define M 5
#define N 8

int main&#40;&#41;&#123;
    srand&#40;time&#40;NULL&#41;&#41;;
    int board&#91;M&#93;&#91;N&#93;;
    int max&#91;N&#93;=&#123;0&#125;,min&#91;N&#93;=&#123;0&#125;;
    int i,j;
    for &#40;i=0;i<M;i++&#41;&#123;//gemisma me tyxaious ari8mous
        for &#40;j=0;j<N;j++&#41;
            board&#91;i&#93;&#91;j&#93;=rand&#40;&#41;%100+1;
    &#125;
    for &#40;i=0;i<M;i++&#41;&#123;//emfanisi stin o8oni
        for &#40;j=0;j<N;j++&#41;
            printf&#40;" %3d ",board&#91;i&#93;&#91;j&#93;&#41;;
        printf&#40;"\n"&#41;;
    &#125;  
    

        for &#40;i=0;i<M;i++&#41;&#123;//grammes
            min&#91;i&#93;=board&#91;i&#93;&#91;0&#93;;
            max&#91;i&#93;=board&#91;i&#93;&#91;0&#93;;
        for &#40;j=0;j<N;j++&#41;&#123;//stiles
            if &#40;board&#91;i&#93;&#91;j&#93;>max&#91;i&#93;&#41;
                max&#91;i&#93;=board&#91;i&#93;&#91;j&#93;;
            else if &#40;board&#91;i&#93;&#91;j&#93;<min&#91;i&#93;&#41;
                        min&#91;i&#93;=board&#91;i&#93;&#91;j&#93;;
        &#125;
    &#125; 
    printf&#40;"\nmin ana grammi \t max ana grammi"&#41;;
    for &#40;i=0;i<M;i++&#41;
    printf&#40;"\n   %3d      \t    %3d",min&#91;i&#93;,max&#91;i&#93;&#41;;
    getchar&#40;&#41;;
    return 0;
&#125;

VagosM
Δημοσιεύσεις: 46
Εγγραφή: 03 Νοέμ 2010 20:19

Αναζήτηση σε πίνακα

Δημοσίευση από VagosM » 14 Δεκ 2010 16:52

Προσπαθώ να κάνω μια άσκηση αλλά δεν την παλεύω με της συναρτήσεις μου επιστρέφουν ότι να είναι.

Κώδικας: Επιλογή όλων

 #include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define M 4
#define N 4
int maximum&#40;int board&#91;&#93;&#91;4&#93;, int , int &#41;;
int minium&#40;int board&#91;&#93;&#91;4&#93;,int ,int &#41;;
int main&#40;&#41;&#123;
int board&#91;M&#93;&#91;N&#93;;
int max&#91;4&#93;,min&#91;4&#93;;
int i,j,min_A=&#123;0&#125;,max_A=&#123;0&#125;;
for &#40;i=0;i<M;i++&#41;
for &#40;j=0;j<N;j++&#41;&#123;
    
printf&#40;"Dwse stoixio&#91;%d&#93;&#91;%d&#93;\n",i,j&#41;;
scanf&#40;"%d",&board&#91;i&#93;&#91;j&#93;&#41;;&#125;
printf&#40;"\n"&#41;;
for &#40;i=0;i<M;i++&#41;&#123;
for &#40;j=0;j<N;j++&#41;
printf&#40;" %3d ",board&#91;i&#93;&#91;j&#93;&#41;;
printf&#40;"\n"&#41;;
&#125;

printf&#40;"To A_max einai to %d",max_A&#41;;
  printf&#40;"\nmin ana grami\n"&#41;;
for &#40;i=0;i<N;i++&#41;
printf&#40;" %3d \n",min&#91;i&#93;&#41;;
printf&#40;"to A_min einai to %d\n",min_A&#41;;
printf&#40;"\nmax ana stili\n"&#41;;
for &#40;i=0;i<N;i++&#41;
printf&#40;" %3d \n",max&#91;i&#93;&#41;;
system&#40;"pause"&#41;;
&#125; 

int maximum&#40;int board&#91;&#93;&#91;4&#93;, int m, int n&#41;&#123;
    int i,j,min&#91;4&#93;,max_A=&#123;0&#125;;
    for &#40;i=0;i<M;i++&#41;&#123;
            min&#91;i&#93;=board&#91;i&#93;&#91;0&#93;;
        for &#40;j=0;j<N;j++&#41;&#123;
             if &#40;board&#91;i&#93;&#91;j&#93;<min&#91;i&#93;&#41;
                        min&#91;i&#93;=board&#91;i&#93;&#91;j&#93;; &#125;&#125;
                  max_A=min&#91;0&#93;;
                  for&#40;i=1;i<N;i++&#41;
 if&#40;max_A<min&#91;i&#93;&#41;
  max_A=min&#91;i&#93;;
return max_A;&#125;

int minium&#40;int board&#91;&#93;&#91;4&#93;,int m,int n&#41;&#123;
    int i,j,max&#91;4&#93;,min_A=&#123;0&#125;;
    for &#40;i=0;i<N;i++&#41;&#123;
max&#91;i&#93;=board&#91;0&#93;&#91;i&#93;;
for &#40;j=0;j<M;j++&#41;&#123;
if &#40;board&#91;j&#93;&#91;i&#93;>max&#91;i&#93;&#41;
max&#91;i&#93;=board&#91;j&#93;&#91;i&#93;;&#125;&#125;
min_A=max&#91;0&#93;;
for&#40;i=1;i<N;i++&#41;
 if&#40;min_A>max&#91;i&#93;&#41;
  min_A=max&#91;i&#93;;
  return min_A;&#125;
 

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Αναζήτηση σε πίνακα

Δημοσίευση από virxen75 » 14 Δεκ 2010 17:57

δεν βλέπω να τις καλεις από τι main....

VagosM
Δημοσιεύσεις: 46
Εγγραφή: 03 Νοέμ 2010 20:19

Αναζήτηση σε πίνακα

Δημοσίευση από VagosM » 14 Δεκ 2010 18:13

Δεν μπορώ να την κάνω...
με τίποτα....
την ξανά έκανα

Κώδικας: Επιλογή όλων

 #include<stdio.h>
#include<stdlib.h>
#define g 10
#define s 10
int max_A&#40;int P&#91;&#93;&#91;10&#93;,int ,int &#41;;
int min_A&#40;int P&#91;&#93;&#91;10&#93;,int ,int &#41;;
int main&#40;&#41;&#123;
    int i,j,stiles,grammes,P&#91;10&#93;&#91;10&#93;,a,b;
    for&#40;i=0;i<grammes;i++&#41;
     for&#40;j=0;j<stiles;j++&#41;
     &#123;printf&#40;"Doste akeraio arithmo gia tin %di stili tis %dis grammis&#58; ",j+1,i+1&#41;;
     scanf&#40;"%d",&P&#91;i&#93;&#91;j&#93;&#41;;&#125;
     printf&#40;"O megalyteros akeraios apo tous mikroterous arithmous kathe grammis einai o&#58; %d\n",max&#40;P&#91;10&#93;&#91;10&#93;,s,g&#41;&#41;;
     printf&#40;"O mikroteros akeraios apo tous megalyterous arithmous kathe stilis einai o&#58; %d\n",min&#40;P&#91;10&#93;&#91;10&#93;,s,g&#41;&#41;;
     system&#40;"pause"&#41;;
     return 0;
     &#125;
     
int max_A&#40;int P&#91;&#93;&#91;10&#93;,int s,int g&#41;&#123;
    int i,j,min&#91;g&#93;,max;
    for&#40;i=0;i<g;i++&#41;
     &#123;min&#91;i&#93;=P&#91;i&#93;&#91;0&#93;;
     for&#40;j=1;j<s;j++&#41;
      if&#40;min&#91;i&#93;>P&#91;i&#93;&#91;j&#93;&#41;
       min&#91;i&#93;=P&#91;i&#93;&#91;j&#93;;&#125;
       max=min&#91;0&#93;;
       for&#40;i=1;i<g;i++&#41;
        if&#40;max<min&#91;i&#93;&#41;
         max=min&#91;i&#93;;
        return max;&#125;
       
  int min_A&#40;int P&#91;&#93;&#91;10&#93;,int s,int g&#41;&#123;
    int i,j,max&#91;s&#93;,min;
    for&#40;i=0;i<s;i++&#41;
     &#123;max&#91;i&#93;=P&#91;0&#93;&#91;i&#93;;
     for&#40;j=1;j<g;j++&#41;
      if&#40;max&#91;i&#93;<P&#91;j&#93;&#91;i&#93;&#41;
       max&#91;i&#93;=P&#91;j&#93;&#91;i&#93;;&#125;
       min=max&#91;0&#93;;
       for&#40;i=1;i<s;i++&#41;
        if&#40;min>max&#91;i&#93;&#41;
         min=max&#91;i&#93;;
        return min;&#125;     
      
    
    
    
    

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Αναζήτηση σε πίνακα

Δημοσίευση από virxen75 » 15 Δεκ 2010 00:47

τώρα?

Κώδικας: Επιλογή όλων

#include<stdio.h>
#include<stdlib.h>
#define GRAMMES 10
#define STHLES 10
int max_A&#40;int P&#91;&#93;&#91;STHLES&#93;,int ,int &#41;;
int min_A&#40;int P&#91;&#93;&#91;STHLES&#93;,int ,int &#41;;
int main&#40;&#41;&#123;
    int i,j,P&#91;GRAMMES&#93;&#91;STHLES&#93;,a,b;
    for&#40;i=0;i<GRAMMES;i++&#41;
     for&#40;j=0;j<STHLES;j++&#41;&#123;
            printf&#40;"Doste akeraio arithmo gia tin %di stili tis %dis grammis&#58; ",j+1,i+1&#41;;
            scanf&#40;"%d",&P&#91;i&#93;&#91;j&#93;&#41;;
     &#125;
     printf&#40;"O megalyteros akeraios apo tous mikroterous arithmous kathe grammis einai o&#58; %d\n",max_A&#40;P,STHLES,GRAMMES&#41;&#41;;
     printf&#40;"O mikroteros akeraios apo tous megalyterous arithmous kathe stilis einai o&#58; %d\n",min_A&#40;P,STHLES,GRAMMES&#41;&#41;;
     system&#40;"pause"&#41;;
     return 0;
     &#125;
     
int max_A&#40;int P&#91;&#93;&#91;STHLES&#93;,int s1,int g1&#41;&#123;
    int i,j,min&#91;g1&#93;,max;
    for&#40;i=0;i<g1;i++&#41;
     &#123;min&#91;i&#93;=P&#91;i&#93;&#91;0&#93;;
     for&#40;j=1;j<s1;j++&#41;
      if&#40;min&#91;i&#93;>P&#91;i&#93;&#91;j&#93;&#41;
       min&#91;i&#93;=P&#91;i&#93;&#91;j&#93;;&#125;
       max=min&#91;0&#93;;
       for&#40;i=1;i<g1;i++&#41;
        if&#40;max<min&#91;i&#93;&#41;
         max=min&#91;i&#93;;
        return max;&#125;
       
  int min_A&#40;int P&#91;&#93;&#91;STHLES&#93;,int s1,int g1&#41;&#123;
    int i,j,max&#91;s1&#93;,min;
    for&#40;i=0;i<s1;i++&#41;
     &#123;max&#91;i&#93;=P&#91;0&#93;&#91;i&#93;;
     for&#40;j=1;j<g1;j++&#41;
      if&#40;max&#91;i&#93;<P&#91;j&#93;&#91;i&#93;&#41;
       max&#91;i&#93;=P&#91;j&#93;&#91;i&#93;;&#125;
       min=max&#91;0&#93;;
       for&#40;i=1;i<s1;i++&#41;
        if&#40;min>max&#91;i&#93;&#41;
         min=max&#91;i&#93;;
        return min;&#125;  


Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες