요구사항
#include<stdio.h> void main() { int i=0,l,score,num,name,M[10],K[10],N[10]; printf("이름 = "); scanf("%c",&name); { printf("학생정답 = "); scanf("%d","%d","%d","%d","%d","%d","%d","%d","%d","%d",&M[1],&M[2],&M[3],&M[4],&M[5],&M[6],&M[7],&M[8],&M[9],&M[10]); } K[1]=1, K[2]=2, K[3]=3, K[4]=4, K[5]=5, K[6]=1, K[7]=2, K[8]=3, K[9]=4, K[10]=5; for(l=1; l<=10; l++) { if(M[l]=K[l]) { M[l]='O'; i+1; } else { M[l]='X'; } score=i*10; } printf("이름 = %c\n",name); printf("%d ",l); printf("점수\n"); printf("-------------------------------"); printf("M[%d] ",l); printf("%d",score); }
에서요
처음에 이름을 입력하고 그다음에 정답을 입력할려고 하니까 Run-Time Check Failure #2 - Stack around the variable 'K' was corrupted. 라고 뜨네요
어디가 틀렸는지 지적좀 해주시고 알맞게좀 고쳐주세요 |
수정 된...
#include<stdio.h> void main() { int i=0,l,score,num,name[10],M[10],K[10],N[10]; printf("이름 = "); scanf("%s",name); { printf("학생정답 = "); scanf("%d %d %d %d %d %d %d %d %d %d",&M[0],&M[1],&M[2],&M[3],&M[4],&M[5],&M[6],&M[7],&M[8],&M[9]); } K[0]=1, K[1]=2, K[2]=3, K[3]=4, K[4]=5, K[5]=1, K[6]=2, K[7]=3, K[8]=4, K[9]=5; for(l=0; l<10; l++) { if(M[l]==K[l]) { N[l]='O'; i=i+1; } else { N[l]='X'; } score=i*10; } printf("이름 = %s \n",name); printf("-------------------------------\n"); for(l=0;l<10;l++) printf("%c ", N[l]); printf("\n점수 = %d\n",score); } |
소스에서 빨간색 표시된 부분이 제가 수정한 부분들입니다. 이름을 입력 받을 때 문자열이기 떄문에 배열로 선언해주셔야 합니다. 또한 이름을 입력 받을 때는 scanf()함수에서 %c 가 아닌 %s를 사용 하셔야 합니다. 출력할때도 마찬가지로 %c가 아닌 %s 입니다. %c는 문자 1개만을 입력 및 출력할 때 사용합니다.
scanf() 함수에서 여러개를 입력 받으실 때는 "%d","%d", 이런식으로 작성할 필요 없이 "%d %d %d" 이런식으로 작성 하시면 됩니다.
if문 안에서 두 변수를 비교 할 때는 = 한 개가 아닌 ==두 개를 사용하셔야 합니다.
맨 아래쪽부분은 질문자님이 무엇을 출력하고자 하셨는지 잘 몰라 제 임의로 뜯어 고쳐 보았습니다. 참고하세요 |
'지식in > c언어 관련' 카테고리의 다른 글
c언어 국어 수학 영어 점수입력 후 성적 출력 (0) | 2013.11.25 |
---|---|
c언어 이름 국어 수학 영어 점수 입,출력 하기 (0) | 2013.11.23 |
c언어 while문으로 원하는 만큼의 수를 입력 받아 평균구하기 (0) | 2013.11.22 |