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

Πρόβλημα με C


NiKoS WSN

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

Δημοσ.

Γεια σας! Θέλω να ασχοληθώ με τον προγραμματισμό! Βρήκα αυτήν την ιστοσελίδα ( http://hellenico.gr/index.php ).

 

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

 

 

> #include <stdio.h>

int main(void) {
 FILE *in = fopen("test.in", "r");
 FILE *out = fopen("test.out", "w");
 int a, b;

 fscanf(in, "%d %d", &a, &;
 fprintf(out, "%d\n", a + ;

 fclose(in); fclose(out);
 return 0;
}

 

 

(μου λέει με λίγα λόγια τι κάνει αυτός ο κώδικας!)

 

και τώρα το μόνο που μπορώ να κάνω είναι να λύσω το πρώτο πρόβλημα (1.1)

 

 

Ο Μίλτος το δελφίνι είναι ένα πολύ ταξιδιάρικο δελφίνι και λατρεύει να διανύει μεγάλες αποστάσεις και να χρονομετρεί τον εαυτό του. Το χρονόμετρο όμως που χρησιμοποιεί έχει δυστυχώς χαλάσει και δείχνει τη μισή ώρα από αυτή που έπρεπε να δείξει κανονικά. Δηλαδή αν ο Μίλτος κάνει μια απόσταση σε 38 δευτερόλεπτα το χρονόμετρο θα δείξει ότι πέρασαν μόνο 19 δευτερόλεπτα.

 

Ο Μίλτος δεν ξέρει τι να κάνει και στράφηκε σε εσένα να τον βοηθήσεις. Μπορείς να γράψεις ένα πρόγραμμα που να δέχεται σαν είσοδο τις λανθασμένες ενδείξεις του χρονομέτρου και να υπολογίζει ποιες είναι οι σωστές;

Δεδομένα Εισόδου (time.in)

 

Το πρόγραμμα θα δέχεται σαν είσοδο τις λανθασμένες ενδείξεις του χρονομέτρου στη μορφή ΩΩ:ΛΛ:ΔΔ, όπου ΩΩ, ΛΛ, ΔΔ είναι ένας διψήφιος ακέραιος με 00<=ΩΩ<=99, 00<=ΛΛ<=59, 00<=ΔΔ<=59. Δεν θα υπάρχει είσοδος στην οποία θα έχουν περάσει περισσότερες από 50 ώρες.

Δεδομένα Εξόδου (time.out)

 

Το πρόγραμμα θα τυπώνει ποια είναι η ένδειξη που θα έπρεπε να δείξει το χρονόμετρο στην ίδια μορφή με την ένδειξη της εισόδου.

Παράδειγμα εισόδου (αρχείο "time.in")

 

12:44:03

 

 

Παράδειγμα εξόδου (αρχείο "time.out")

 

25:28:06

 

 

 

Αλλά εγώ δεν ξέρω τι να κάνω! Έκανα διάφορες πατέντες με τον κώδικα από την θεωρία αλλά τίποτα! Δεν θέλω την λύση αλλά κάποια μικρή βοήθεια!

Δημοσ.

Στο παράδειγμα που έδωσες υπάρχουν 2 αρχεία ένα εισόδου και ένα εξόδου. Από το αρχείο time.in θα σου δίνει ένδειξη χρονόμετρου, εσύ θα την μετατρέψεις σε δευτερόλεπτα, θα βρεις τον τύπο που σου δίνει πόσα δευτερόλεπτα περνάνε πραγματικά (Στα 38 το χρονόμετρο σου δείχνει 19 στο 1 πόσα ?) αυτά τα δευτερόλεπτα θα τα ξαναμετατρέψεις σε ένδειξη χρονομέτρου, και τέλος θα τα τυπώσεις στο αρχείο time.out

Δημοσ.

Στο παράδειγμα που έδωσες υπάρχουν 2 αρχεία ένα εισόδου και ένα εξόδου. Από το αρχείο time.in θα σου δίνει ένδειξη χρονόμετρου, εσύ θα την μετατρέψεις σε δευτερόλεπτα, θα βρεις τον τύπο που σου δίνει πόσα δευτερόλεπτα περνάνε πραγματικά (Στα 38 το χρονόμετρο σου δείχνει 19 στο 1 πόσα ?) αυτά τα δευτερόλεπτα θα τα ξαναμετατρέψεις σε ένδειξη χρονομέτρου, και τέλος θα τα τυπώσεις στο αρχείο time.out

 

Στα μαθηματικά ξέρω να το κάνω σε προγράμματα δεν μπορώ να το κάνω γιατί δεν έχω καμία ιδέα από συγκεκριμένη γλώσσα! Πως θα το κάνω;

Δημοσ.

Σε ποιο κομμάτι του προγράμματος δεν μπορείς να συνεχίσεις ? Στην ανάγνωση του αρχείου , στην μετατροπή των δευτερολέπτων ή στην εγγραφή του αποτελέσματος ?

Δημοσ.

Σε ποιο κομμάτι του προγράμματος δεν μπορείς να συνεχίσεις ? Στην ανάγνωση του αρχείου , στην μετατροπή των δευτερολέπτων ή στην εγγραφή του αποτελέσματος ?

 

Σε όλα θα είναι λίγο! Είναι σαν να πω σε ένα μικρό παιδί που μόλις έμαθε να λέει το όνομα του να το γράψει! Κάνω κάτι λάθος, γίνεται να κάνω άτι τέτοιο με 1% γνώσεις;

Δημοσ.

fscanf("%d:%d:%d",ΩΩ,ΛΛ,ΔΔ)

 

μαθηματικα...

 

fprintf("%d:%d:%d",ΩΩ,ΛΛ.ΔΔ)

 

Tips: Θελεις if για να δεις αν τα λεπτα/δευτερολεπτα εχουν υπερχειλισει

Δημοσ.

Κι εγώ προτείνω να ψάξεις κάποιο tutorial για να μάθεις τα βασικά και μετά αν θέλεις να ασχοληθείς με

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

στα ελληνικά αρκετούς οδηγούς για C.Ψάξε όμως για κάποιον που ξεκινάει από το μηδέν.Εσύ πήγες κατευθείαν στα

βαθειά!!

Δημοσ.

Κι εγώ προτείνω να ψάξεις κάποιο tutorial για να μάθεις τα βασικά και μετά αν θέλεις να ασχοληθείς με

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

στα ελληνικά αρκετούς οδηγούς για C.Ψάξε όμως για κάποιον που ξεκινάει από το μηδέν.Εσύ πήγες κατευθείαν στα

βαθειά!!

 

Κατάλαβα... Ευχαριστώ πολύ όλους!

Δημοσ.

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

Δημοσ.

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

 

Κυρίως ασχολούμαι με web design- development οπότε θα ασχοληθώ αργότερα με προγραμματισμό! Το site μου το έδωσε ένας φίλος επειδή ξέρει πως ασχολούμαι και μπήκα να τσεκάρω! Αλλά δεν καίγομαι!

Δημοσ.

 

 

 

Ο Μίλτος το δελφίνι είναι ένα πολύ ταξιδιάρικο δελφίνι και λατρεύει να διανύει μεγάλες αποστάσεις και να χρονομετρεί τον εαυτό του. Το χρονόμετρο όμως που χρησιμοποιεί έχει δυστυχώς χαλάσει και δείχνει τη μισή ώρα από αυτή που έπρεπε να δείξει κανονικά. Δηλαδή αν ο Μίλτος κάνει μια απόσταση σε 38 δευτερόλεπτα το χρονόμετρο θα δείξει ότι πέρασαν μόνο 19 δευτερόλεπτα.

 

Ο Μίλτος δεν ξέρει τι να κάνει και στράφηκε σε εσένα να τον βοηθήσεις. Μπορείς να γράψεις ένα πρόγραμμα που να δέχεται σαν είσοδο τις λανθασμένες ενδείξεις του χρονομέτρου και να υπολογίζει ποιες είναι οι σωστές;

Δεδομένα Εισόδου (time.in)

 

Το πρόγραμμα θα δέχεται σαν είσοδο τις λανθασμένες ενδείξεις του χρονομέτρου στη μορφή ΩΩ:ΛΛ:ΔΔ, όπου ΩΩ, ΛΛ, ΔΔ είναι ένας διψήφιος ακέραιος με 00<=ΩΩ<=99, 00<=ΛΛ<=59, 00<=ΔΔ<=59. Δεν θα υπάρχει είσοδος στην οποία θα έχουν περάσει περισσότερες από 50 ώρες.

Δεδομένα Εξόδου (time.out)

 

Το πρόγραμμα θα τυπώνει ποια είναι η ένδειξη που θα έπρεπε να δείξει το χρονόμετρο στην ίδια μορφή με την ένδειξη της εισόδου.

Παράδειγμα εισόδου (αρχείο "time.in")

 

12:44:03

 

 

Παράδειγμα εξόδου (αρχείο "time.out")

 

25:28:06

 

 

 

Τι λάθος έχει το παρακάτω πρόγραμμα;;όταν το τρέχω βγάζει σωστά αποτελέσματα αλλα όταν το κανω υποβολή στο site μου βγάζει λάθη..

>#include <stdio.h>


int main(void)
{
     FILE *in= fopen("time.in","r");
     FILE *out= fopen("time.out","w");
     
     int h,m,s,sec,wres,lepta,b;
     char c;

     fscanf(in,"%d%c%d%c%d",&h,&c,&m,&c,&s);

     b = (h * 3600)+ (60 * m) + s;
      
     sec = b * 2;

     wres = sec / 3600;
     
     sec = sec - (wres*3600);
     
     lepta = sec / 60;  
     
     sec = sec - (lepta*60);    
     
     fprintf(out,"%d%c%d%c%d\n",wres,c,lepta,c,sec);
     
     fclose(in);
     
     fclose(out);
    
     return (0);
     
}

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

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

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