Jeg har et problem med noget kode som jeg ikke kan få til at virke. Problemet består i noget jeg ikke helt kan forstå selv, men jeg ved da hvad jeg vil gøre, så det kan i da lige få med!
Hele koden:
- //
- // main.c
- // SekundOmregner
- //
-
- #include <stdio.h>
-
- //Prototype
- void user_instr(void);
- void convert_seconds(int seconds, char *hours, char *mins, char *secs);
- char need_zeros(int input);
-
- int main ()
- {
-
- int seconds;
- char hours[128], mins[8], secs[8];
-
- user_instr();
-
- printf("\n\nPlease enter the ammount of seconds you wish to convert: ");
- scanf("%d", &seconds);
-
- convert_seconds(seconds, &hours, &mins, &secs);
-
- printf("%d seconds is equal to: ", seconds);
- printf("\n\n%s Hours\n%s Minutes\n%s Seconds", hours, mins, secs);
- printf("\n\n%s:%s:%s", hours, mins, secs);
-
- return 0;
- }
-
- void user_instr(void){
-
- printf("Welcome to the Seconds converter program\n");
- printf("Enter any given ammount of seconds to convert it\n");
- printf("into hours, minutes and seconds");
-
- }
-
- void convert_seconds(int seconds, char *hours, char *mins, char *secs){
-
- int temp_hour, temp_min, temp_sec;
-
- //Convert seconds to hours (first minutes, then hours)
- temp_hour = seconds/60/60;
- temp_hour = 5;
-
- *hours = need_zeros(temp_hour);
-
- //Minutes left from hours
- temp_min = seconds/60 - *hours*60;
- temp_min = 5;
- *mins = need_zeros(temp_min);
-
-
- //Seconds left from minutes
- temp_sec = seconds - ((*hours * 60 * 60) + (*mins * 60));
- temp_sec = 5;
- *secs = need_zeros(temp_sec);
-
- }
-
- char need_zeros(int input){
-
- char temp[20];
-
- if(input < 10){
-
- sprintf(temp, "%02d", input);
-
- }
-
- return temp;
-
- }
Jeg får et input som er int, antal sekunder. Dem sender jeg videre til funktionen convert_seconds. Den udregner så timer, minutter og sekunder. Det var fint nok. Så ville jeg have sådan at når et tal er under 10, så skal der skrives et 0 foran, f.eks. 9 -> 09, 5 -> 05.
Det sker i need_zeroes, men der går det galt, for den skal smide int'en ind i en char. Kan ikke finde ud af hvorfor den ikke gider :/
Indlæg senest redigeret d. 12.09.2011 15:46 af Bruger #10325