2015-10-10 79 views
-2

作为一项任务的一部分,我必须在C中编写一段代码,以给出开始时间和持续时间加在一起的结束时间。需要帮助修复代码以便它可以编译

例如, “开始时间是1245时长是345结束时间是1630”

这是我的代码:

#include <stdio.h> 

void addTime(int start, int duration); 
int main() 

{ 
addTime(1045, 345); 
addTime(800, 435); 
addTime(2300, 300); 
} 

void addTime(int start, int duration) 

if(start + duration > 2400) 
{ 
printf("Start time is %d. Duration is %d. End time is %d\n", start, duration, (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60) + (((((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100))/60)%)/3600)%)))); 
} 

else 
{ 
printf("Start time %d. Duration is %d. End time is %d\n", start, duration, (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60) + (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60)%)); 
} 

这是错误消息:

task3.c: In function ‘addTime’: 
task3.c:14:1: error: expected declaration specifiers before ‘if’ 
if(start + duration > 2400) 
task3.c:19:1: error: expected declaration specifiers before ‘else’ 
else 
task3.c:22:1: error: expected ‘{’ at end of input 
+0

addTime()函数需要一个大括号,“{”。 – lit

回答

3

您错过了大约addTime的大括号({})的执行:

void addTime(int start, int duration) 
{ /* here */  
    if(start + duration > 2400) 
    { 
     printf("Start time is %d. Duration is %d. End time is %d\n", start, duration, (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60) + (((((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100))/60)%)/3600)%)))); 
    }   
    else 
    { 
     printf("Start time %d. Duration is %d. End time is %d\n", start, duration, (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60) + (((((60*(start/100))+(((start/100)%)*100)) + ((60*(duration/100))+(((duration/100)%)*100)))/60)%)); 
    } 
} /* and here */