από abramis » 02 Μάιος 2015, 04:45
σύμφωνα με το κώδικα της συνάρτησης που βλέπω, αυτό δεν μπορεί να τρέχει γτ δεν κλείνεις ένα άγγιστρο. αν υποθέσουμε ότι το ξέχασες και είναι παρακάτω απ΄ το return το άγγιστρο που κλείνει την συνάρτηση τότε το άγγιστρο που ναι στην return, κλείνει αυτό της 1ης for της συνάρτησης δλδ για να καταλαβαίνουμε
- Κώδικας: Επιλογή όλων
for(i=0; i<size; i++){
user=0;
for(j=0; j<size; j++)
user+=F[i][j];
return (user);
}
αυτό έχεις γράψει ουσιαστικά. η 2η for κάνει αυτό "user+=F[i][j];" μόνο και το κάνει για κάθε τιμή του i κανονικά αλλά στη συγκεκριμένη περίπτωση το κάνει μόνο για i=0 αφού μετά βρίσκει return και τερματίζει η συνάρτηση. δλδ η συνάρτηση επιστρέφει τιμή όταν το i=0, δλδ κάνει μια φορά το loop. δεν μπορείς να κάνεις πολλά return, 1 μόνο γίνεται, και μόλις γίνει τερματίζει τη συνάρτηση. άμα θες να χεις κι άλλο return πρεπει να ξανακαλέσεις τη συνάρτηση το οποίο κάνεις στη printf αφού είναι μέσα σε for. το θέμα είναι ότι αυτό user+=F[i][j]; πάντα είναι user+=F[0][j]; ουσιαστικά . κάτι τέτοιο δλδ θα χε περισσότερο σημασία:
- Κώδικας: Επιλογή όλων
int findFriends (int *F, int size, int user) {
int j;
int sum=0;
for(j=0; j<size; j++)
sum+=F[user][j];
return (sum);
}
έβαλα ένα * στο F. δεν νομίζω να σου δουλεύει με ** έτσι πως την καλείς. με 2 θα δούλευε άμα την καλούσες findFriends(
&matrixF, num_users, i)
Τελευταία επεξεργασία από
abramis και 02 Μάιος 2015, 05:12, έχει επεξεργασθεί 1 φορά/ες συνολικά
1 Γνώσεις Linux: Μέτρια┃ Προγραμματισμού: Μέτρια ┃ Αγγλικών: Μέτρια
2 Ubuntu 20.04 focal 5.4.0-33-generic 64bit (el_GR.UTF-8, KDE plasma), Windows 10
3 AMD Ryzen 5 1400 Quad-Core Processor ‖ RAM 16021 MiB ‖ Gigabyte B450M S2H
4 Advanced Micro Devices, Inc. [AMD/ATI] Bonaire XTX [Radeon R7 260X/360] [1002:6658] {radeon}
5 enp8s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 16)
laptop:Ubuntu 18.04 bionic 5.3.0-40-generic 64bit(GNOME gnome),Windows 10, Lenovo B50-80, Intel Celeron 3205U @ 1.50GHz, RAM 7902 MiB, Intel Broadwell-U Graphics [8086:1606] {i915}