아마 C 언어를 처음 공부하시는 분 같아서
소스를 완벽하게 고쳐주면 공부가 안될거 같아서
몇가지 틀린부분 조언만 드립니다. 수정해 보시고 안되면 다시 소스
올려 보세요,, 그러면 다시 조언해 드리지요..
일단 변수를 사용함에 있어 전역변수와 지역변수를 제대로 구분하지 않고 사용했습니다.
struct hpad m[100]; <-- 이 스트럭트 변수의 경우
각각의 함수에서 따로 선언을 했으므로 지역변수가 되어 이름은 같아도 별도의 저장공간을
가지게 됩니다. 그러니 입력한 메모리 번지와 실제 출력하는 메모리 번지가 틀리지요..
이변수를 전역으로 설정하거나 아니면 Main함수에 설정하고 함수의 파라메터로 포인터를 사용
해서 넘겨 주세요...
static int a=0,b=0; <-- 이 변수의 경우 전역변수로 정의 되어 있는데
실제로 void input(); void output(); 이두 함수의 내부에 지역변수로 또
정의 되어 있습니다. 그러니 실제로 함수내부에서는 지역변수가 우선이 됩니다.
그러니 a++ ; <-- 아무리 해봐야 죽은자식 불알 만지는 꼴이죠...
그리고 인원을 100명으로 한정지으려고 했던거 같은데
do, while 문 보다는 while문을 사용하던가 아니면 for 문을 사용하세요..
while(q>EOF); <-- 이부분은 아무 의미없이 에러만 발생시키고 있습니다.
위에서 말한것처럼 그냥 while, 이나 for 문을 쓰세요..
님께서 사용한 do, while 문 안에 코드는 이미 while문에 적당하게 코딩되어 있습니다.
실제로 q 값은 어떠한 입력도 없으므로 비교 대상도 안돼고, EOF의 정의도 없습니다.
#define EOF 100
이렇게 정의 하던가,, EOF의 경우 화일처리와 관련해서 정의 값이
있으므로 사용하지 않고 다른 정의를 쓰세요..
일단 이정도만 조언해 드립니다.
그럼 열심히 고쳐 보세요...
|