|
흠.. 글쿤요..
na가 배열이란걸 미처 못봤네요..
허접이지만... 님이 쓰신 글 :
: 조준회 님이 쓰신 글 :
: :
: : scanf에서 & 를 빼먹었고요.
: :
: : for 루프에서 0부터 시작하였으니까..
: : i <= 10이 아니라 i < 10이 되어야 합니다.
: :
: : <=로 하게되면.. 11번째 배열을 사용하게됩니다.
: : 이렇게 되면..원하지 않는 영역을 사용하게되어..
: :
: : 잘돌아가는 것 처럼 보이다가.. 알수없는 문제가 발생하기도 합니다.
: : C에서는 이런건 프로그래머의 책입니다.
: :
: : 터보씨 정복이라는 책을 보면.. 프로그래밍의 관례와..
: : 디버거 사용법이 나옵니다.
: :
: : 이 정도는 디버거만 사용할줄 알아도 해결이 가능합니다.
: : 디버거를 잘 쓸줄알아야 프로그래밍이 편해집니다. 반드시 익히도록 하세요...
: :
: :
: : 도아주세요 님이 쓰신 글 :
: : : 문제)10명의 학생 이름과 C점수를 입력받아 가장 최고점수를 맞은 학생의 이름과 점수를 함께
: : : 출력 하시오
: : :
: : : #include <stido.h>
: : : #include <string.h>
: : : main()
: : : {int i, c, max=0;
: : : char na[10];
: : : char maxna[10];
: : : for (i=1; i<=10; i++)
: : : {scanf("%s", na);
: : : scanf("%d", &c);
: : : if (c>max) {
: : : max=c;
: : : strcpy(maxna,na);
: : : }
: : : }
: : : printf("이름=%s\n",maxna);
: : : printf("최고점수= %d\m", max);
: : : }
: : :
: : : 제가 초보라 들여쓰기를 어떻게 해야되는지 모르거등요
: : : 고수님들 알려주세요..
:
:
: 제 생각엔 말이죠...
: 물론 for루프를 한번 더 돌린것도 문제겠지만...
: 코딩하는데 철자가 틀렸네요..
: stdio.h 인데 stido.h로 쓰셨네요..
: 그리고 scanf 문에서 &를 빼먹었다고 하셨는데
: 문자열을 문자열 배열에 읽어드릴려면 &기호를 붙이지 않습니다.
: 답변해주신 분의 말씀이 좀 틀린거 같네요..
: 포인터랑 배열에 관계된 부분을 좀더 보시면 이해가 되실듯...
: 그리고 메인함수를 리턴값이 있는 형태로 선언을 하셨는데..
: 리턴값이 없네요...
: void를 쳐 넣으시고 함 돌려보세요...
: 제 의견이 틀렸는지도 모르겠는데 어째든 이케하니까 실행이 되던데요...
: 허접하지만 참고하세요..
:
: #include <stdio.h>
: #include <string.h>
:
: void main(void)
: {
: int i, c, max=0;
: char na[10];
: char maxna[10];
:
: for (i=1; i<=10; i++) {
: scanf("%s", na);
: scanf("%d", &c);
:
: if (c>max) {
: max=c;
: strcpy(maxna,na);
: }
: }
:
: printf("이름=%s\n",maxna);
: printf("최고점수= %d\m", max);
:
: }
|