컴파일 오류 또는 논리 오류수정 봐주세요ㅠ
글고운
질문 요약 :
왼쪽이 수정 전 오른쪽이 수정 후 이며, 고친부분은 오른쪽에 빨간글씨및 주석처리로 설명을 썼습니다.
혹시 제가 수정한 부분이 맞지 않다거나 수정해야되는데 놓친곳이 있다면 알려주세요!
질문 내용 : C코드(또는 코드 조각)들에 포함되어 있는 컴파일 오류 또는 논리 오류들을 고친 코드를 이유와 함께 제시해야합니다. 고칠때 Ctrl C Ctrl v해서 문제를 비쥬얼스튜디오에 옮긴후 빨간 밑줄 안생기게 하고 (완벽한 코드는 아니지만 그래도)빌드시에 뜨는 오류를 제가 할수 있는만큼은 고쳤으나 어디를 고쳐야될지 전혀 모르는 부분도 있고 또 고쳤다고는 했으나 놓치고 지나간 부분이 있을까봐 질문드립니다.
1번
#include stdio.hdouble half_of();int main(void)
{
printf(%f, half_of(10.3));
return 0
}float half_of(double x) ;
{
return x / 2.0;
}
#include stdio.hdouble half_of();
int main(void)
{
printf(%f, half_of(10.3));
return 0 ; //각 문장은 세미콜론으로 끝난다.
}double half_of(double x) //데이터형을 통일, ; 삭제
{
return x / 2.0;
}
여기서 질문은;를 붙이면 왜 안되는지 정확히 모르겠습니다. double half_of(double x)가 함수 헤더이기때문인가요? 또한 제가 놓친부분이 있다면 가르쳐 주세요.
2번int half_of(int x);
{
return x / 2;
}
void sum(void)
{
int x = 1, y == 1, y = 2, z = 3;
return x+y+z
}
int half_of(int x) // ; 삭제
{
return x / 2;
}
int sum(void) //리턴값이 존재하므로 int형으로 변환
{
int x = 1, y = 2, z = 3;
return x+y+z ; //각 문장은 ; 으로 끝나야한다.
}
마찬가지로 코드 첫번째줄의 ;삭제이유는 헤더함수이기때문인가요? 그리고 제가 놓친부분이 있다면 가르쳐주세요.
3번
int i = 0;
while (i 10)
{
printf(i의 값:\n, i);
}
이거는 아예 어떻게 해야할지 모르겠어요ㅠ 그냥 구문오류라는 오류메세지만 뜹니다.
뭔가 저 while를 다른것으로 고쳐야 할것 같은데 for는 while과 같은 의미니까 if로 고치면 되는건가요?
자세한 설명 부탁드립니다ㅠㅠ