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

c


Επισκέπτης

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

στην παρακάτω φώτογραφία είναι μια άσκηση που πρέπει να λυθεί σε c και δεν την έχω καταλάβει όποιος μπορεί ας με βοηθήσει ευχαριστώ!!!

Υγ1 εκει που λέει two είναι τυπογραφικό four είναι το σωστό!!!

345ε.JPG

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
19 λεπτά πριν, kaliakman είπε

Τι έχεις κάνει μέχρι τώρα και που έχεις κολλήσει? 

ουσιαστικά έχω κολλήσει στην συναρτηση στο τι πρέπει να κάνει

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

#define N 10

int four(int);

main()
{
    int lim,a;
    char xar;
    
    printf("Give a num\n");
    scanf("%d",&lim);
    
    printf("Give a char");
    scanf("%c",&xar);
    
    a=four(lim);
    
    printf("Numbers of string is: \n%d",a);
}

int four(int llim)
{
    int pin[N];
}

Επεξ/σία από vense97
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 ώρα πριν, kaliakman είπε

Τι έχεις κάνει μέχρι τώρα και που έχεις κολλήσει? 

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

#define N 10

int four(int,char);

main()
{
    int lim,a;
    char xar;
    
    printf("Give a num\n");
    scanf("%d",&lim);
     
    fflush(stdin);     
    
    printf("Give a char\n");
    scanf("%c",&xar);
   
    a=four(lim,xar);
    
    printf("Numbers of string is: \n%d",a);
}

int four(int llim, char xxar)
{
    int totals,sum,i;
    char pin[N];
    
    totals=1;
    sum=0;
    
    while(totals<llim+1) 
    {
        printf("string %d:\n",totals);
        gets(pin);
        if(strlen(pin)<5||pin[strlen(pin)-1]==xxar)
        {
            printf("LATHOS\n");
            return totals;
        }
        for(i=0;i<strlen(pin);i++)
            if(pin[i]<65 || pin[i]>90)
            {
                pin[i]='C';
                sum++;
            }
        printf("sum= %d\n", sum);
        puts(pin);
        totals++;
    }
    return sum;    
}

 

το ολοκλήρωσα όμως δεν τρέχει σωστά

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δεν ανέφερες το περιβάλλον στο οποίο το τρέχεις (ή τον compiler τον οποίον χρησιμοποιείς) ούτε τι είναι αυτό που δεν τρέχει. Δοκίμασες να βάλεις "δοκιμαστικά" printf σε συγκεκριμένα σημεία ώστε να δεις τι τιμές παίρνουν κάποιες μεταβλητές κλειδιά; Χωρίς παραπάνω πληροφορίες δεν μπορούμε να ξέρουμε τι φταίει.

Για παράδειγμα το fflush που έβαλες λειτουργεί σωστά; Αυτό είναι ανάλογα το περιβάλλον που χρησιμοποιείς. Αν λειτουργεί γιατί έβαλες μόνο μετά την 1η scanf και όχι μετά την 2η; Μήπως αυτό χαλάει την gets; Αν δεν λειτουργεί θα πρέπει να βρεις άλλον τρόπο να "καθαρίζεις" την είσοδο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Spoiler

Γιατί διδάσκουν ακόμα αυτή τη γλώσσα;;;; Αντε, c++ πες ακόμα χρησιμοποιείται σε πολλές εταιρίες. Αλλά c;;;;

Ts, πόσταρε και το αποτέλεσμα. Τι σου βγάζει;;
edit:Το πρώτο bullet δεν το έχεις κάνει, πως να σου παίξει; 

Επεξ/σία από filip123go
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

53 λεπτά πριν, filip123go είπε
  Απόκρυψη περιεχομένων

Γιατί διδάσκουν ακόμα αυτή τη γλώσσα;;;; Αντε, c++ πες ακόμα χρησιμοποιείται σε πολλές εταιρίες. Αλλά c;;;;

Ts, πόσταρε και το αποτέλεσμα. Τι σου βγάζει;;
edit:Το πρώτο bullet δεν το έχεις κάνει, πως να σου παίξει; 

Γιατί είναι σχολή πληροφορικής και όχι προγραμματισμού. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

8 ώρες πριν, filip123go είπε
  Εμφάνιση κρυμμένου περιεχομένου

Γιατί διδάσκουν ακόμα αυτή τη γλώσσα;;;; Αντε, c++ πες ακόμα χρησιμοποιείται σε πολλές εταιρίες. Αλλά c;;;;

 

Γιατί ένα πρόγραμμα σπουδών αλλάζει 1 φορά κάθε 35 χρόνια 😛 Το δικό μας πρόγραμμα σπουδών είχε cobol και prolog να φανταστείς. Το 2000 είχα προλάβει prolog και νομίζω ότι είχε λίγα χρόνια που είχε αφαιρεθεί η cobol. Μετά από 2-3 χρόνια μπήκε java η οποία νομίζω ότι αντικατέστησε την prolog αλλά δεν είμαι σίγουρος. Και το βιβλίο που μας έδιναν για την C ήταν εποχής Turbo C σε DOS και έδινε παρωχημένες οδηγίες του στυλ int = 2 bytes.

8 ώρες πριν, filip123go είπε

ε και το αποτέλεσμα. Τι σου βγάζει;;
edit:Το πρώτο bullet δεν το έχεις κάνει, πως να σου παίξει;

Πρώτο bullet εννοείς εκεί που λέει συνάρτηση two; Αν ναι, είναι τυπογραφικό και εννοεί την four. Αν παραβλέψουμε "λάθη" τύπου άσκησης (πχ gets, < 65, κτλ) ο κώδικας έπαιξε σε εμένα μετά από κάποιες αλλαγές. Αλλά, όπως είπες, δεν μας έδωσε ούτε τι λάθη δείχνει ο compiler ούτε τι κάνει το πρόγραμμα. Εγώ υποθέτω ότι είναι η fflush, όπως έγραψα και πριν.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

4 ώρες πριν, imitheos είπε

Γιατί ένα πρόγραμμα σπουδών αλλάζει 1 φορά κάθε 35 χρόνια 😛 Το δικό μας πρόγραμμα σπουδών είχε cobol και prolog να φανταστείς. Το 2000 είχα προλάβει prolog και νομίζω ότι είχε λίγα χρόνια που είχε αφαιρεθεί η cobol. Μετά από 2-3 χρόνια μπήκε java η οποία νομίζω ότι αντικατέστησε την prolog αλλά δεν είμαι σίγουρος. Και το βιβλίο που μας έδιναν για την C ήταν εποχής Turbo C σε DOS και έδινε παρωχημένες οδηγίες του στυλ int = 2 

Ακόμα υπάρχει η Prolog αλλά πλέον έχει εισαχθει και η Haskell. 

Εγώ θεωρώ πολύ σωστό να σου μαθαίνει c γιατί είναι πολύ πιο "εύκολο" να κάνεις πολλά μαθήματα έτσι. Πχ λειτουργικά ή δομες και να καταλάβαινες τι συμβαίνει. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το πρόγραμμα είναι σωστό και κάνει ότι ζητάει η άσκηση, εκτός ίσως το τελευταίο return της four που νομίζω πρέπει να επιστρέφει totals αντί sum. To ότι δεν τρέχει μπορεί όπως είπαν και οι άλλοι να οφείλεται σε πολλά πράγραμματα. Προτείνω να το τρέξεις σε debugger για να έχεις σωστή εικόνα τι πάει λάθος.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στις 4/2/2021 στις 2:29 ΜΜ, vense97 είπε

το ολοκλήρωσα όμως δεν τρέχει σωστά

Μάλλον έχεις θέμα με το enter στις 2 scanf. Μετά από κάθε scanf πρόσθεσε την εντολή getchar(); Ή μπορείς να χρησιμοποιήσεις ένα while για να ξεσκαρτάρεις χαρακτήρες/ελέγχεις μήκος ή μπορείς να χρησιμοποιήσεις την fgets και να κάνεις ανάθεση τον πρώτο χαρακτήρα (άσχετα αν ο χρήστης κατά λάθος εισάγει περισσότερους χαρακτήρες).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Καλησπέρα παιδιά!!!

Δεν είχα μπει καθόλου - και για αυτό γράφω τώρα - και δεν είχα δει τι είχατε γράψει και σας ευχαριστώ πολυ όλους....τελικά έπρεπε να βάλω άλλο ένα  fflush(stdin);  και επίσης τα  gets και puts να τα κάνω scanf και printf. Μετά από όλα αυτά που άλλαξα δεν είχα κανένα θέμα...Σας ευχαριστώ πολύ και πάλι!!!

 

6 ώρες πριν, k33theod είπε

Το πρόγραμμα είναι σωστό και κάνει ότι ζητάει η άσκηση, εκτός ίσως το τελευταίο return της four που νομίζω πρέπει να επιστρέφει totals αντί sum. To ότι δεν τρέχει μπορεί όπως είπαν και οι άλλοι να οφείλεται σε πολλά πράγραμματα. Προτείνω να το τρέξεις σε debugger για να έχεις σωστή εικόνα τι πάει λάθος.

Το sum πρέπει να επιστρέφει απο ότι κατάλαβα...όπως είπαμε πολύ κακογραμμένη άσκηση

20 ώρες πριν, filip123go είπε
  Απόκρυψη περιεχομένων

Γιατί διδάσκουν ακόμα αυτή τη γλώσσα;;;; Αντε, c++ πες ακόμα χρησιμοποιείται σε πολλές εταιρίες. Αλλά c;;;;

Ts, πόσταρε και το αποτέλεσμα. Τι σου βγάζει;;
edit:Το πρώτο bullet δεν το έχεις κάνει, πως να σου παίξει; 

δες το υπουργείο ήθελε να κάνουμε πασκαλ, οπότε θεωρώ τυχερό τον ευατό μου ,πως πριν την c++ και την java που θα τις δω σε άλλα εξάμηνα, αντι για πασκαλ κάνω c 😂

Επεξ/σία από vense97
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συγχαρητήρια φίλε που το έλυσες μόνος σου, μπράβο! Συνέχισε έτσι και που ξέρεις, σε 4-5 χρόνια μπορεί να μου έρθεις και για συνέντευξη.! 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...