Σε αυτό το παράδειγμα, θα μάθετε να υπολογίζετε τη διαφορά μεταξύ δύο χρονικών περιόδων χρησιμοποιώντας μια συνάρτηση που καθορίζεται από το χρήστη.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες θεματολογίες προγραμματισμού Γ:
- C Λειτουργίες που καθορίζονται από τον χρήστη
- C δομή
- C Δομή και λειτουργία
- C δομές και δείκτες
Υπολογίστε τη διαφορά μεταξύ δύο χρονικών περιόδων
#include struct TIME ( int seconds; int minutes; int hours; ); void differenceBetweenTimePeriod(struct TIME t1, struct TIME t2, struct TIME *diff); int main() ( struct TIME startTime, stopTime, diff; printf("Enter the start time. "); printf("Enter hours, minutes and seconds: "); scanf("%d %d %d", &startTime.hours, &startTime.minutes, &startTime.seconds); printf("Enter the stop time. "); printf("Enter hours, minutes and seconds: "); scanf("%d %d %d", &stopTime.hours, &stopTime.minutes, &stopTime.seconds); // Difference between start and stop time differenceBetweenTimePeriod(startTime, stopTime, &diff); printf("Time Difference: %d:%d:%d - ", startTime.hours, startTime.minutes, startTime.seconds); printf("%d:%d:%d ", stopTime.hours, stopTime.minutes, stopTime.seconds); printf("= %d:%d:%d", diff.hours, diff.minutes, diff.seconds); return 0; ) // Computes difference between time periods void differenceBetweenTimePeriod(struct TIME start, struct TIME stop, struct TIME *diff) ( while (stop.seconds> start.seconds) ( --start.minutes; start.seconds += 60; ) diff->seconds = start.seconds - stop.seconds; while (stop.minutes> start.minutes) ( --start.hours; start.minutes += 60; ) diff->minutes = start.minutes - stop.minutes; diff->hours = start.hours - stop.hours; )
Παραγωγή
Εισαγάγετε την ώρα έναρξης. Εισαγάγετε ώρες, λεπτά και δευτερόλεπτα: 13 34 55 Εισαγάγετε την ώρα διακοπής. Εισαγάγετε ώρες, λεπτά και δευτερόλεπτα: 8 12 15 Διαφορά ώρας: 13:34:55 - 8:12:15 = 5:22:40
Σε αυτό το πρόγραμμα, ο χρήστης καλείται να εισαγάγει δύο χρονικές περιόδους και αυτές οι δύο περίοδοι αποθηκεύονται σε μεταβλητές δομής startTime και stopTime αντίστοιχα.
Στη συνέχεια, η συνάρτηση differenceBetweenTimePeriod()
υπολογίζει τη διαφορά μεταξύ των χρονικών περιόδων. Το αποτέλεσμα εμφανίζεται από τη main()
συνάρτηση χωρίς να την επιστρέψετε (χρησιμοποιώντας τεχνική κλήσης με αναφορά ).