30 Aug, 2017

Η λύση του πρώτου Mind Game, Προγραμματιστικό πρόβλημα Νο1

30 Aug, 2017

Η ώρα ήρθε… Η λύση του πρώτου MInd Game – Προγραμματιστικό Πρόβλημα Νο1 είναι γεγονός, αλλά πριν δώσουμε την λύση θα θέλαμε να ευχαριστήσουμε όλους τους διαγωνιζόμενους του Mind Game, σε όποιο σημείο και αν έφτασαν.

Οι νικητές θα παραλάβουν ένα καπέλο με τα χρώματα και τα λογότυπα της Audax Cybersecurity. Σας ευχαριστούμε και περιμένουμε ακόμη μεγαλύτερη συμμετοχή στα επόμενα Mind Games που θα αναρτηθούν..

Το πρόβλημα:

Γράψτε ένα πρόγραμμα σε C, το οποίο να δίνει λύση στο παρακάτω θέμα :

Το προγραμματάκι στην αρχή ζητάει από τον χρήστη να του δώσει έναν μεγάλο ακέραιο αριθμό ο οποίος θα αντιπροσωπεύει δευτερόλεπτα. Το πρόγραμμά σας πρέπει να «σπάει» αυτόν τον αριθμό σε Μέρες, Ώρες και Δευτερόλεπτα.

Χρησιμοποιήστε ακέραιους για τους υπολογισμούς σας, δηλαδή το πρόγραμμά σας θα αποκόπτει τα μη ακέραια μέρη (να μην σας δυσκολέψουμε από την αρχή).

Αναμενόμενη έξοδος :

C:\mozilla>foo
Enter the number of seconds: 100000
100000 seconds = 1666 minute(s)
100000 seconds = 27 hour(s)
100000 seconds = 1 day(s)

Η λύση:

Δευτερόλεπτα σε Μέρες (Λύση)

Μία λύση για το πρόβλημά μας είναι η παρακάτω. Θα μπορούσαμε βέβαια να την κάνουμε πιο κομψή αν δεν αποκόπταμε τα μη ακέραια μέρη.

#include <stdio.h> main() {

int seconds; int minutes; int hours; int days;

printf(«Enter the number of seconds: «); scanf(«%d», &seconds);
minutes = seconds / 60;
hours = (seconds / 60) / 60;

days = ((seconds / 60) / 60) / 24;
printf(«%d seconds = %d minute(s)\n», seconds, minutes); printf(«%d seconds = %d hour(s)\n», seconds, hours); printf(«%d seconds = %d day(s)\n», seconds, days);

}
Paste, make, execute τον παραπάνω κώδικα.

Δοκιμάστε να πληκτρολογήσετε 100695, το αποτέλεσμα είναι:

«
»