In dit voorbeeld leert u het verschil tussen twee tijdsperioden te berekenen met behulp van een door de gebruiker gedefinieerde functie.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:
- C Door de gebruiker gedefinieerde functies
- C struct
- C Structuur en functie
- C structs en Pointers
Bereken het verschil tussen twee tijdsperioden
#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; )
Uitvoer
Voer de starttijd in. Voer uren, minuten en seconden in: 13 34 55 Voer de eindtijd in. Voer uren, minuten en seconden in: 8 12 15 Tijdsverschil: 13:34:55 - 8:12:15 = 5:22:40
In dit programma wordt de gebruiker gevraagd om twee tijdsperioden in te voeren en deze twee perioden worden opgeslagen in respectievelijk de structuurvariabelen startTime en stopTime.
Vervolgens differenceBetweenTimePeriod()
berekent de functie het verschil tussen de tijdsperioden. Het resultaat wordt van de main()
functie weergegeven zonder het terug te sturen (met behulp van call by reference- techniek).