Καλησπερα καταρχας,
Λοιπον λυνω προβληματα στο hellenico.gr και εχω κολλησει στην υποβολη ενος προβληματος. Συγκεκριμενα κεφ 1.1 το 3ο με την ληψη αρχειων. Εχω φτιαξει προγραμμα στην c , δουλευει στο pc μου μια χαρα , αλλα στην αξιολογηση βγαζει σφαλμα κατατμησης.
S. O. S.Κώδικας://Διαβαζει αρχειο download.in μορφης:// //(Αριθμος αρχειων)// //(ταχ.αρχειου1 KB/s) (δευτερολεπτα μεχρι ολοκληρωση λυψης αρχειου1)// //(ταχ.αρχειου2 KB/s) (δευτερολεπτα μεχρι ολοκληρωση λυψης αρχειου2)// //...// //και επιστρεφει στρογκυλοποιημενα ποση ωρα χρειαζετε για να // //ολοκληρωθει η λυψη ολων στο download.out// #include <stdio.h> #include <math.h> #define MAX 30 int main(void) { FILE *in = fopen("download.in", "r"); FILE *out = fopen("download.out", "w"); char bfr[150];//buffer// int numofls; fgets(bfr, MAX - 1, in);//διαβαζει την πρωτη σειρα για τον # αρχειων// sscanf( bfr, "%d \n", &numofls); int i, j; float spd[numofls - 1];//ταχυτητα αρχειου// float tme[numofls - 1];//χρονος που απομενει αρχειου// for(i = 0; i < numofls; ++i){//Διαβαζει ταχυτητες και χρονους και τους βαζει στις μεταβλητες// if (!fgets(bfr, MAX - 1, in)) break; if (sscanf(bfr, "%f %f", &spd[i], &tme[i]) < 2) break; } fclose(in); for(i = 0; i < numofls; ++i){ for(j = 0; j < numofls; ++j){//Sorting λιγοτερου προς περισσοτερου χρονου που απομενει// if(tme[i] < tme[j]){ tme[i] = tme[i] + tme[j]; tme[j] = tme[i] - tme[j]; tme[i] = tme[i] - tme[j]; spd[i] = spd[i] + spd[j]; spd[j] = spd[i] - spd[j]; spd[i] = spd[i] - spd[j]; } } } float sunoltme = tme[0]; float sunolspd = spd[0]; for(i = 1; i < numofls; ++i){//πραξεις για να βγει ο χρονος που απομενει// if(tme[i] == tme[i - 1]) sunolspd = sunolspd + spd[i]; else{ sunolspd = sunolspd + spd[i]; sunoltme = sunoltme + spd[i] * ( tme[i] - sunoltme ) / sunolspd ; } } fprintf(out, "%.0f", rintf(sunoltme)); fclose(out); return 0; }
- - - Updated - - -
Υ.Γ. Προτιμαω να μου πειτε τι ή που εκανα λαθος απο το να μου δωσετε ετοιμη λυση ευχαριστω!
Εμφάνιση 1-6 από 6
-
12-06-17, 17:39 Σφαλμα κατατμησης γιατιιιιι #1
-
12-06-17, 19:30 Απάντηση: Σφαλμα κατατμησης γιατιιιιι #2
Καταρχήν η σωστή πρακτική για όσο έχεις ανοιχτά αρχεία είναι αφού ελέγξεις ότι οι pointers τους δεν είναι null, να το βάλεις όλο αυτό το σύνολο κώδικα σε ένα try block στου οποίου την finally, αφού πάλι ελεγχθούν ότι δεν είναι null οι pointers τους, να κλείνεις τα αρχεία.
Επιτέλους το ελάχιστο δυνατό, ευέλικτο, και ψηφιακό κράτος. Με διαρκή αξιολόγηση.
-
12-06-17, 22:50 Απάντηση: Σφαλμα κατατμησης γιατιιιιι #3
Για κοίταξε τις δηλώσεις αυτών των δυο πινάκων:
Κώδικας:float spd[numofls - 1]; float tme[numofls - 1];
-
20-06-17, 22:09 Απάντηση: Σφαλμα κατατμησης γιατιιιιι #4
ε το σκεφτηκα αμα ειναι πχ 2 αρχεια το 1ο θα παει στην θεση 0 και το 2ρο στην θεση 1 (δεν ειναι απαραιτητη η numofls θεση δλδ)
- - - Updated - - -
Ε i give up μετα απο 2 μερες googling δε βρηκα κατι , εβαλα check για null τα pointers στην αρχη και το τελος τιποτα. Εκανα null τα pointers πριν το fclose τιποτα , μετα το fclose το ιδιο. Τι πρεπει να κανω για να δουλεψει ?
-
22-06-17, 07:09 Απάντηση: Σφαλμα κατατμησης γιατιιιιι #5
printf("%d", numofls);
Βαλε αυτο κατω απο την sscanf(bfr, "%d\n", &numofls); να δεις τι τιμη παιρνει αυτη η numofls .... μπορει να λεω και μπουρδες εχω καιρο να ασχοληθω με c ... εντωμεταξυ αν ειναι 0 τα αρχεια ισχυει αυτο που ειπε ο alexis12 ...θα βγαζει σφαλμα ...
- - - Updated - - -
Προσωπικα οταν πηγα να δω τι ... παιζει στο visual studio 2017 ....μου εβγαζε λαθος ταΚώδικας:float spd[numofls - 1];//ταχυτητα αρχειου// float tme[numofls - 1];
-
22-06-17, 12:04 Απάντηση: Σφαλμα κατατμησης γιατιιιιι #6
E λέει ότι θα είναι σίγουρα από 1 και πάνω τα αρχεία
hmmm θα το κοιτάξω το numofls αν και μπορεί να παίζει θέμα με compatibility κάπου γιατί κοίταξα τι compiler χρησιμοποιουν και έχουν λέει gcc 3.4 στα linux και εγώ έχω το latest στα windows.
Παρόμοια Θέματα
-
Σφάλμα στον κώδικα του Cloudflare οδηγεί στην διαρροή ευαίσθητων δεδομένων
Από nnn στο φόρουμ ΕιδήσειςΜηνύματα: 4Τελευταίο Μήνυμα: 27-02-17, 11:56 -
ΠΡΟΒΛΗΜΑ ΜΕ ΣΦΑΛΜΑ ΣΤΟ WINDOWS UPDATE
Από panostvtv στο φόρουμ Software γενικάΜηνύματα: 9Τελευταίο Μήνυμα: 30-08-16, 16:15 -
Σφάλμα κατά την εκκίνηση των windows 8.1
Από ilias1ar στο φόρουμ WindowsΜηνύματα: 6Τελευταίο Μήνυμα: 07-08-16, 09:19
Bookmarks