Προς το περιεχόμενο

Ερωτησεις για C


_Marios_

Προτεινόμενες αναρτήσεις

Δημοσ.

Για το 2 δεν ξερω αλλα το void το χρησιμοποιείς οταν η εν λόγω συνάρτηση δεν θελεις να επιστρέφει κάποια τιμή(αν εκανες ΑΕΠΠ στο λύκειο void ειναι οι διαδικασίες και μη void οι συναρτησεις)

Δημοσ.
1)Παιδια το void ποτε το χρησιμοποιουμε στις συναρτήσεις;

2)

 

1) Όταν η συνάρτηση δεν επιστρέφει τιμή (πριν) ή δεν δέχεται ορίσματα (μετά στην παρένθεση)

 

2) Αυτό είναι παράδειγμα επιστροφής μιας συνάρτησης με void

μπροστά :P

 

damn... answer preempted

 

Περισσότερα εδώ

Δημοσ.

Παιδια να ρωτησω.. το παρακάτω προγραμμα ποσο θα το βαθμολογούσατε με αριστα το 10.. εχει κάποια λάθη..

η εκφώνηση ειναι να φιαξουμε πρόγραμμα που υπολογι2ει το Α=χ*χ+χ+(a+B)*c σε συναρτηση calc για χ απο 1 μεχρι 10.τα a, b, c τα δινει ο χρήστης μια φορα.

Το εχω γράψει απλα εχω καποια λαθάκια και θελω να μου πείτε πόσο κοστι2ουν..

και ποια ειναι..

 

>#include <stdio.h>

int calc(int a, int b, int c, int x)
{
            int A;
            A=x*x+x+(a+*c;
            printf("To A einai %d", A);
}

main ()
{
    int a, b, c, x, i;
    scanf("%d", a);
    scanf("%d", ;
    scanf("%d", c);
    
    for(i=1;i=10,++i)
    {
        calc(a, b, c, x);
    }
}

Δημοσ.
Παιδια να ρωτησω.. το παρακάτω προγραμμα ποσο θα το βαθμολογούσατε με αριστα το 10.. εχει κάποια λάθη..

η εκφώνηση ειναι να φιαξουμε πρόγραμμα που υπολογι2ει το Α=χ*χ+χ+(a+B)*c σε συναρτηση calc για χ απο 1 μεχρι 10.τα a, b, c τα δινει ο χρήστης μια φορα.

Το εχω γράψει απλα εχω καποια λαθάκια και θελω να μου πείτε πόσο κοστι2ουν..

και ποια ειναι..

 

To μονο λάθος που βλέπω ειναι οτι εχεις βαλει την συναρτηση calc να επιστρέφει τιμή αλλα δεν επιστρέφεις τίποτα. Θα πρεπει αντι για printf μεσα στην calc να βαλεις return A; και μετα στην Main στο for αντι για calc(a,b,c,x) να βαλεις prinf("%d", calc(a,b,c,x));

Αντι για αυτό αρκει να βαλεις την calc ως void αλλα νομιζω καλυτερα να επιστρεφει την τιμή.

Δημοσ.

Παιδια ευχαριστώ για τις απαντήσεις απλα θα ήθελα να μου πείτε ποσο θα βαθμολογούσατε αυτο που έχω γράψει με αριστα το 10.

Δημοσ.
Παιδια ευχαριστώ για τις απαντήσεις απλα θα ήθελα να μου πείτε ποσο θα βαθμολογούσατε αυτο που έχω γράψει με αριστα το 10.

 

Τι σημασία έχει η βαθμολογία ? Άλλωστε δεν ξέρεις τον καθένα μας. Μπορεί να

είμαστε καρα άσχετοι.

 

Όσον αφορά το πρόγραμμα, έχει κάποια χαζά λάθη που υποθέτω σου ξέφυγαν

λόγω βιασύνης.

 

>
#include <stdio.h>

int calc(int a, int b, int c, int x)
{
            int A;
            A=x*x+x+(a+*c;
            printf("To A einai %d", A);
}

main ()
{
    int a, b, c, x, i;
    scanf("%d", a);
    scanf("%d", ;
    scanf("%d", c);
    
    for(i=1;i=10,++i)
    {
        calc(a, b, c, x);
    }
}

 

1) Οι δηλώσεις της scanf όπως είπα και πριν.

2) Το δεύτερο όρισμα της for είναι έλεγχος, οπότε το i=10 πρέπει να γίνει i<=10

3) Στο 3ο όρισμα της for έχεις κόμμα αντί για ερωτηματικό.

4) Ενώ η ανακύκλωση χρησιμοποιεί την μεταβλητή i, καλείς την calc με x.

Μπορείς να το κάνεις calc(a,b,c,i)

5) Όπως είπε και ο bnvdarklord, η calc σου δεν επιστρέφει τίποτα.

Μπορείς είτε να την δηλώσεις void, ή όπως την έχεις να μην τυπώνει η calc

αλλά να επιστρέφει το A.

Edit: 6) Ξέχασα να αναφέρω ότι η main πρέπει να δηλώνεται int και να

επιστρέφει κάτι στο τέλος.

Δημοσ.

Η calc δε θέλω να επιστρέφει κατι παιδια. Αυτο που εχω κάνει θελω να κάνει οταν φτάνει το προγραμμα σε αυτη να τρεχει και να τυπώνει το Α.

 

Γιατι θέλει i<=10 αφου απο ενα μεχρι 10 θέλω

Δημοσ.
Η calc δε θέλω να επιστρέφει κατι παιδια. Αυτο που εχω κάνει θελω να κάνει οταν φτάνει το προγραμμα σε αυτη να τρεχει και να τυπώνει το Α.

 

Τότε δήλωσε την ως void.

 

Γιατι θέλει i<=10 αφου απο ενα μεχρι 10 θέλω

 

Στο βιβλίο ή το άρθρο ή όπου διαβάζεις C, δες την σύνταξη της for.

Η δική σου for σε πιο απλή μορφή είναι η ακόλουθη:

>
i=1;
while (i=10)
{
   calc(a, b, c, x);
   ++i;
}

 

Η ανακύκλωση κάθε φορά θα θέτει την τιμή 10 και δεν θα τελειώσει ποτέ.

Δημοσ.
Η calc δε θέλω να επιστρέφει κατι παιδια. Αυτο που εχω κάνει θελω να κάνει οταν φτάνει το προγραμμα σε αυτη να τρεχει και να τυπώνει το Α.

 

Γιατι θέλει i<=10 αφου απο ενα μεχρι 10 θέλω

 

Αν δε θες να επιστρέφει κάτι τότε θα την δηλώσεις ως

void calc(int a, int b, int c, int x) και όχι ως int , το int στην αρχή σηλώνει οτι η συνάρτηση επιστρέφει τιμή!

(το ένα θα λειτουργήσει ως υποπρόγραμμα το άλλο ως συνάρτηση με μια πιο προς BASIC έννοια)

 

Επίσης πρέπει να βάλεις i<=10 γιατί το κομμάτι ανάμεσα στα 2 ; στη for είναι η "Συνθήκη επανάληψης" , τι πρέπει να ισχύει δλδ για να ξαναμπεί μέσα στη for. αν βάλεις i=10 δε θα εκτελεστεί για i=2 πχ και θα τελειώσει πρόωρα η λούπα.

Δημοσ.
file apla einai simadiko gia emena. pes mou re paidi m ena va8mo..

 

Όπως είπα και πριν, δεν ξέρεις τις γνώσεις μου οπότε η βαθμολογία μου δεν έχει

μεγάλη βαρύτητα. Εφόσον όμως θέλεις ενδεικτικά μια βαθμολογία, ορίστε.

 

Έτσι όπως ήταν η αρχική μορφή είχε χαζό-λάθη αλλά και θεμελιώδη λάθη οπότε 2.

Αν γίνουν οι αλλαγές που είπαμε όλα τα παιδιά τότε θα γίνει αξιοπρεπές και

για τα δεδομένα της εκφώνησης 8-9

Δημοσ.

Αν παρέδωσες αυτόν τον κώδικα όπως τον ανάρτησες εδώ δύσκολα να πάρεις έστω και την βάση (5) εκτός και αν είσαι σε τμήμα αρχάριων στην C ή στον προγραμματισμό γενικά, οπότε εκεί έχεις ενδεχομένως κάποιες ελπίδες ειδικά αν συνδυαστεί με κατανόηση από τον καθηγητή (επίσης το τι σας δίδαξε και πως..) και το γενικότερο (χαμηλό) επίπεδο των υπόλοιπων μαθητών του τμήματος σου ;), διαφορετικά κόπηκες :-(

Δημοσ.
Η calc δε θέλω να επιστρέφει κατι παιδια. Αυτο που εχω κάνει θελω να κάνει οταν φτάνει το προγραμμα σε αυτη να τρεχει και να τυπώνει το Α.

 

Γιατι θέλει i<=10 αφου απο ενα μεχρι 10 θέλω

 

γιατί στο 9 θα σταματήσει 1,2,3,4,5,6,7,8,9 άρα 9 φορές

επίσης άμα επιστρέφει η Α τότε απλά θα δείξει σε loop τις επιστροφές, δηλαδή τις τιμές..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...