Εισαγωγή στον Προγραμματισμό



Σχετικά έγγραφα
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Εισαγωγή στον δομημένο προγραμματισμό

Εχουμε ήδη συναντήσει μονοδιάστατους πίνακες, οι οποίοι ορίζονται ως εξής:

Εισαγωγή στον δομημένο προγραμματισμό

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό

Γλώσσα Προγραμματισμού C

Πίνακες. FORTRAN και Αντικειμενοστραφής Προγραμματισμός

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες ( ιάλεξη 18) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΑΣΚΗΣΗ #5 Προτεινόμενη Λύση

Δομές Δεδομένων & Αλγόριθμοι

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

Πίνακες. Οι πίνακες αποτελούν ένα σηµαντικό δοµηµένο τύπο δεδοµένων (structured data type) ή πιο απλά µία δοµή δεδοµένων (data structure).

Προχωρημένες έννοιες προγραμματισμού σε C

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Εισαγωγή στον Προγραμματισμό

ΠΙΝΑΚΕΣ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Μεθόδων Επίλυσης Προβλημάτων

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

242 -ΕισαγωγήστουςΗ/Υ

Κεφάλαιο 8.6. Πίνακες ΙI (Διάλεξη 17)

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Γλώσσα Προγραμματισμού C

Εισαγωγή στον δομημένο προγραμματισμό

Πίνακες. (i) FORTRAN και Αντικειµενοστραφής Προγραµµατισµός

Ασκηή σεις 12ο Μαά θημα - Λυύ σεις

ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Εργαστηριακή Άσκηση 1

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Κεφάλαιο 8.6. Πίνακες ΙI ( ιάλεξη 16) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ. Ενότητα 8: Ειδικά Θέματα Αλγορίθμων

Δείκτες & Πίνακες Δείκτες, Πίνακες

Διαδικασιακός Προγραμματισμός

Υπολογισμός - Εντολές Επανάληψης

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Η γλώσσα προγραμματισμού C

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Να εκτυπωθούν οι πρώτες Ν σειρές του τριγώνου, χρησιµοποιώντας ένα πίνακα µεγέθους Ν στοιχείων (η Ν-οστή σειρά περιέχει Ν στοιχεία).

Η γλώσσα προγραμματισμού C

Προγραμματισμός I (Θ)

Η γλώσσα προγραμματισμού C

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ιαφάνειες παρουσίασης #6

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Κεφάλαιο Πίνακες Ι. (Διάλεξη 16)

ΒΑΣΙΚΕΣ ΕΠΕΞΕΡΓΑΣΙΕΣ ΜΟΝΟΔΙΑΣΤΑΤΩΝ ΚΑΙ ΔΙΣΔΙΑΣΤΑΤΩΝ ΠΙΝΑΚΩΝ ΟΙ ΠΙΟ ΣΗΜΑΝΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΛΗ111. Ανοιξη Μάθηµα 2 ο. Αλγόριθµοι και Αφηρηµένοι Τύποι εδοµένων. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Αλγόριθμοι Ταξινόμησης Μέρος 1

Εργαστήριο 2: Πίνακες

Ηλεκτρονικοί Υπολογιστές

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

Δομημένος Προγραμματισμός (ΤΛ1006)

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Συναρτήσεις και Πίνακες

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Μεθόδων Επίλυσης Προβλημάτων

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 5

ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ. for (παράσταση_1; παράσταση_2; παράσταση_3) εντολή επόμενη εντολή

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

Υπολογισμός - Εντολές Ελέγχου

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Κεφάλαιο : Επαναλήψεις (oι βρόγχοιfor, do-while) (Διάλεξη 10) Εντολές Επανάληψης που θα καλυφθούν σήμερα

Fortran και Αντικειμενοστραφής προγραμματισμός.

Μεθόδων Επίλυσης Προβλημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

Κεφάλαιο Πίνακες Ι. ( ιάλεξη 15) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΠΙ Ν Α Κ Ε Σ (arrays)

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΗΥ-150. Ταξινόµηση και Αναζήτηση

Δομημένος Προγραμματισμός (ΤΛ1006)

ΠΕΡΙΣΣΟΤΕΡΑ ΠΑΡΑΔΕΙΓΜΑΤΑ ΜΕ ΧΡΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. ΠΑΡ 1 ΔΙΑΒΑΣΜΑ-ΕΚΤΥΠΩΣΗ ΕΥΡΕΣΗ ΜΕΣΟΥ ΟΡΟΥ ΜΟΝΟΔΙΑΣΤΑΤΟΥ ΠΙΝΑΚΑ ΜΕ ΧΡΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ #include <stdio.

Γ7.5 Αλγόριθμοι Αναζήτησης. Γ Λυκείου Κατεύθυνσης

Κεφάλαιο : Επαναλήψεις (for, do-while)

ιαφάνειες παρουσίασης #4

Transcript:

Εισαγωγή στον Προγραμματισμό Ενότητα 6 Πίνακες Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

Τύπος πίνακα (array) Σύνθετος τύπος δεδομένων Αναπαριστά ένα σύνολο ομοειδών τιμών π.χ. βαθμοί μαθητών μιας τάξης, θερμοκρασίες ενός μήνα, κτλ. Τα στοιχεία ενός πίνακα αποθηκεύονται σε διαδοχικές θέσεις μνήμης Χαρακτηριστικά: Μέγεθος πίνακα Τύπος στοιχείων

Δήλωση πίνακα <τύπος> <όνομα πίνακα> [<μέγεθος πίνακα>]; float temp[5]; int arr[10]; Αρχικοποίηση float temp[5]={25.2, 25.5, 26.6, 26, 25.9; float temp[]={25.2, 25.5, 26.6, 26, 25.9; float temp[5]={25.2, 25.5, 26.6;

Αναφορά στα στοιχεία του πίνακα Ένα στοιχείο του πίνακα προσδιορίζεται από το όνομα του πίνακα και ένα αριθμό που προσδιορίζει τη σειρά του Το πρώτοστοιχείο του πίνακα έχει σειρά 0 (αποθηκεύεται στη θέση 0) είκτης: Πίνακας temp 0 1 2 3 4 25.2 25.5 26.6 26.0 25.9 temp[0] temp[1] temp[4]

Δήλωση και αρχικοποίηση πίνακα #include <stdio.h> #define N 10 main() { int a[n]; int i; for ( i=0; i<n; i++ ) a[i] = 0;

Χρήση στοιχείων του πίνακα Τα στοιχεία του πίνακα τα χειριζόμαστε όπως και τις απλές μεταβλητές x = temp[2]*10; temp[0] = 25.4; temp[i] = temp[i+1] + 2; for (i=0; i<5; i++) if (temp[i]<25) temp[i]++; else temp[i]--;

Διαχείριση στοιχείων πίνακα Αποθήκευση τιμών σε μονοδιάστατο πίνακα for (i=0; i<10; i++) scanf("%d", &a[i]); Άθροιση τιμών μονοδιάστατου πίνακα for (i=0; i<10; i++) sum += a[i]; Εμφάνιση τιμών μονοδιάστατου πίνακα for (i=0; i<10; i++) printf("ημερα %d - ΩΡΕΣ %d\n", i, a[i]);

Πολυδιάστατοι πίνακες Ένας πίνακας μπορεί να έχει στοιχεία που είναι πίνακες int array[4][12];/* 4 γραµµές, 12 στήλες */ array[0][1];/* το στοιχείο της πρώτης γραµµής και δεύτερης στήλης */ array[0,1]; /* ΛΑΘΟΣ */ Αποθήκευση στη μνήμη σε γραμμές (ως μονοδιάστατος)

Δισδιάστατος πίνακας Βαθμοί 5 φοιτητών σε 3 μαθήματα int bathmoi[5][3]; Μαθήµατα Φοιτητές 0 1 2 3 4 0 1 2 7 8 6 3 7 4 3 5 5 7 9 8 4 4 6 Αρχικοποίηση: bathmoi[5][3]= {{7,8,6, {3,7,4, {3,5,5, {7,9,8, {4,4,6

Αρχικοποίηση δισδιάστατου πίνακα #define N 3 #define M 10 double f[n][m]; double f[n][m]; int i, j; for (i = 0; i < N; i++) for (j = 0; j < M; j++) f[i][j] = 0.0;

Επεξεργασία στοιχείων πίνακα (1) Άθροιση των στοιχείων των διαγωνίων σε τετραγωνικό πίνακα int i,j; int sum1=0; int sum2=0; for ( i=0; i < N; i++ ) for ( j=0; j < Ν; j++ ) { if (i == j) /*κύρια διαγώνιος*/ sum1 += a[i][j]; if ((i + j) == N-1) /*δευτερεύουσα διαγώνιος*/ sum2 += a[i][j];

Επεξεργασία στοιχείων πίνακα (2) Άθροιση των στοιχείων των διαγωνίων σε τετραγωνικό πίνακα int i; int sum1=0; int sum2=0; for (i=0; i < N; i++) { sum1 += a[i][i]; /*κύρια διαγώνιος*/ sum2 += a[i][n-1-i]; /*δευτερεύουσα διαγώνιος*/

Διάβασμα τιμών 2 πινάκων Α και Β Σύγκριση των στοιχείων και αποθήκευση του µεγαλύτερου στον πίνακα C #include <stdio.h> #define N 15 /* Μέγεθος των πινάκων */ int A[N], B[N], C[N]; main() { int i; for (i=0; i<n; i++) { printf(" ώστε τιµή για το στοιχείο Α[%d]: ", i); scanf("%d", &A[i]); printf(" ώστε τιµή για το στοιχείο B[%d]: ", i); scanf("%d", &B[i]); C[i] = (A[i]>B[i])? A[i] : B[i]; /*Ισοδύναµο µε: if (A[i]>B[i]) C[i] = A[i]; else C[i] = B[i];*/

Εύρεση μέσου όρου (1D array) #include <stdio.h> const int N=5; void main() { int sum=0, i, x[n]; float avg; for (i=0; i<n; i++) { /* ιάβασµα πίνακα */ printf("dose to %d stoixeio: ", i+1); scanf("%d", &x[i]); for (i=0; i<n; i++) /* Υπολογισµός Μ.Ο. */ sum += x[i]; avg = (float)sum/n; printf("\nmesos oros = %.2f \n", avg); /* Ακρίβεια 2 δεκαδικών ψηφίων*/

Εύρεση μέσου όρου (2D array) #include <stdio.h> const int N=5, Μ=3; void main() { int sum=0, i, j, x[n][μ]; float avg; for (i=0; i<n; i++) /* ιάβασµα πίνακα */ for (i=0; i<n; i++) /* ιάβασµα πίνακα */ for (j=0; j<m; j++) { printf("dose to stoixeio x[%d][%d]: ",i, j); scanf("%d", &x[i][j]); for (i=0; i<n; i++) /* Υπολογισµός Μ.Ο. */ for (j=0; j<m; j++) sum += x[i][j]; avg = (float)sum /(N*M); printf("\nmesos oros = %.2f \n", avg); /* Ακρίβεια 2 δεκαδικών ψηφίων*/

Εύρεση μεγαλύτερου/μικρότερου και θέσης #include <stdio.h> const int N=5; void main() { int max, maxp, min, minp, i, x[n]; for (i=0; i<n; i++) { /* ιάβασµα Πίνακα */ printf("dose to %d stoixeio: ", i+1); scanf("%d", &x[i]); max=min=x[0]; maxp=minp=0; for (i=0; i<n; i++) { /* Εύρεση Μεγαλ./Μικρ. */ if (x[i] > max) { max = x[i]; maxp = i; if (x[i] < min) { min = x[i]; minp = i; printf("megisto = %d sti thesi %d \n", max, maxp); printf("elaxisto = %d sti thesi %d \n", min, minp);

Εναλλαγή 1 ης και τελευταίας γραμμής/στήλης /* εδοµένου πίνακα x[n][m] */ int i, temp; for (i=0; i<m; i++) { /* Εναλλαγή γραµµής */ temp = x[0][i]; x[0][i] = x[n-1][i]; x[n-1][i] = temp; for (i=0; i<n; i++) { /* Εναλλαγή στήλης */ temp = x[i][0]; x[i][0] = x[i][μ-1]; x[i][μ-1] = temp;

Πολλαπλασιασμός πινάκων /* εδοµένων Πινάκων a[x][y] και b[y][z] */ float c[x][z]; /* Υπολογισµός γινοµένου πίνακα */ for (i=0; i<x; i++) { for (j=0; j<z; j++) { c[i][j]=0; for (k=0; k<y; k++) c[i][j] += a[i][k]*b[k][j]; /* Εκτύπωση αποτελέσµατος */ for (i=0; i<x; i++) { for (j=0; j<z; j++) printf("%.0f\t", c[i][j]); printf("\n");

Ταξινόμηση πίνακα int a[]={3,2,5,7,1,8,4,9,6; {1,2,3,4,5,6,7,8,9 Μέθοδοι ταξινόμησης: Ταξινόμηση φυσαλίδας (bubble sort) Ταξινόμηση επιλογής(selection sort) Γρήγορη ταξινόμηση(quicksort)

Μέθοδος ταξινόμησης Bubble Sort Σύγκρινε το πρώτο με το δεύτερο στοιχείο Αν το πρώτο είναι μεγαλύτερο αντάλλαξε τις τιμές τους Συνέχισε με το δεύτερο και τρίτο στοιχείο... Επανέλαβε τη διαδικασία ξεκινώντας πάλι από το πρώτο στοιχείο και συγκρίνοντας όλα τα στοιχεία εκτός του τελευταίου... Επανέλαβε τη διαδικασία εφόσον υπάρχει έστω μία ανταλλαγή

Μέθοδος ταξινόμησης Bubble Sort /* εδοµένου πίνακα a[n] */ typedef unsigned char bool; int i, n, tmp, a[n]; bool stop_taxinomisi; n = N; /* Ο αριθµός στοιχείων που θα ταξινοµηθούν */ do { stop_taxinomisi=true; for (i=0; i<n-1; i++) if (a[i] > a[i+1]) { tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; stop_taxinomisi=false; /*έγινε ανταλλαγή*/ n=n-1; /*Μείωσε το εύρος των δυνατών συγκρίσεων */ while(!stop_taxinomisi);

Ταξινόμηση με Επιλογή Βρες το μικρότερο στοιχείο του πίνακα Αντάλλαξέ το με το πρώτο στοιχείοτου πίνακα Επανέλαβε τη διαδικασία για τον πίνακα από το 2ο ως το τελευταίο στοιχείο όσο ο πίνακας έχει πάνω από 1 στοιχείο

Ταξινόμηση με Επιλογή /* εδοµένου πίνακα a[n] */ int i, j, tmp, min; for (i=0; i < N-1; i++) { min = i; for (j = i+1; j < N; j++) if (a[j] < a[min]) min = j; /* Θέση του µέγιστου */ tmp = a[i]; /* Ανταλλαγή στοιχείων */ a[i] = a[min]; a[min] = tmp;

Αναζήτηση πίνακα Ελέγχεται αν ο πίνακας περιέχει ένα στοιχείο με μία συγκεκριμένη τιμή Πίνακας ={2,4,3,5,1,6,7 Τιμή αναζήτησης=1 Αποτέλεσμα=ΝΑΙ (5 ο στοιχείο /4 η θέση του πίνακα) Τιμήαναζήτησης=8 Αποτέλεσμα=ΟΧΙ Μέθοδοι αναζήτησης Γραμμική αναζήτηση Δυαδική αναζήτηση (απαιτεί ταξινομημένο πίνακα)

Γραμμική αναζήτηση /* εδοµένου πίνακα a[n] */ int i=0, timi; bool found = FALSE; scanf("%d", &timi); scanf("%d", &timi); while ((!found) && (i<n)) if (a[i] == timi) found = TRUE; else i++; if (found) printf("bρεθηκε ΤΟ %d ΣΤΗ ΘΕΣΗ %d\n", a[i], i); else printf(" ΕΝ ΒΡΕΘΗΚΕ\n");

Δυαδική αναζήτηση Εφαρμόζεται σε ταξινομημένους πίνακες Εξετάζεται η τιμή του μεσαίου στοιχείου Αν έχει την τιμή που αναζητούμε, η αναζήτηση τερματίζεται επιτυχώς Αν έχει μεγαλύτερη τιμή, η αναζήτηση συνεχίζεται στο αριστερό τμήμα του πίνακα Αν έχει μικρότερη τιμή, η αναζήτηση συνεχίζεται στο δεξιό τμήμα του πίνακα Η διαδικασία επαναλαμβάνεται στο νέο τμήμα πίνακα μέχρι να βρεθεί το στοιχείο ή το τμήμα να περιέχει ένα μόνο στοιχείο που δεν είναι αυτό που αναζητούμε

Δυαδική αναζήτηση /* εδοµένου ταξινοµηµένου πίνακα a[n] */ int left, right, mid; bool found; left=0; right=n-1; found=false; while ((!found) && (left <= right)) { mid = (left+right)/2; if (a[mid] == timi) found=true; else if(a[mid] > timi) right = mid-1; else left = mid+1; if (found) printf("bρεθηκε ΤΟ %d ΣΤΗ ΘΕΣΗ %d\n", a[mid], mid); else printf(" ΕΝ ΒΡΕΘΗΚΕ\n");

Άσκηση Τι περιέχει το a[8] µετά την εκτέλεση του παρακάτω κώδικα; int i, a[10]; for (i = 0; i < 10; i++) a[i] = 9 - i; for (i = 0; i < 10; i++) a[i] = a[a[i]]; ΛΥΣΗ: i: 0 1 2 3 4 5 6 7 8 9 a[i] after 1st loop: 9 8 7 6 5 4 3 2 1 0 a[i] after 2nd loop: 0 1 2 3 4 4 3 2 1 0

Άσκηση Σε ένα πίνακα 10 θέσεων αποθηκεύουµε συχνότητεςεµφάνισης 10 αντικειµένων (20 εµφανίσεις) και βρίσκουµε το πιο συχνό αντικείµενο. Εντοπίστε πιθανά λάθη. main() { int num, i, j, maxi, a[9]; for (j=0; j<20; j++) { scanf("%d", num); a[num-1]++; for (i = 0; i < 10; i++); if (a[i] > a[maxi]) maxi = i; printf("max = %d\n", maxi);

Λάθη main() { int num, i, j, maxi, a[9]; for (j=0; j<20; j++) { scanf("%d", num); a[num-1]++; for (i = 0; i < 10; i++); if (a[i] > a[maxi]) maxi = i; printf("max = %d\n", maxi); #include <stdio.h> int a[10 10] scanf("%d", &num) O a[] πρέπει να αρχικοποιηθεί Το maxiπρέπει να αρχικοποιηθεί Λάθος ;μετά τη 2η for Μπορεί να εισαχθεί τιμή <0 ή >10

Ερωτήσεις; 31