코드블럭으로 돌리면 맞게 출력되는데 채점 프로그램이 자꾸 틀렸다고 해요 ㅠㅠ > 자유게시판



정올게시판

커뮤니티

정올소식
자유게시판
질문게시판
자주하는질문(FAQ)

코드블럭으로 돌리면 맞게 출력되는데 채점 프로그램이 자꾸 틀렸다고 해요 ㅠㅠ

페이지 정보

작성자 홍용근(davilju) (220.♡.248.193) 작성일18-12-06 17:05 조회161회 댓글3건

본문


자꾸 출력할때 혼자서 한줄만 나와여 ㅠㅠ
for 반복문으로 문자 출력하면...
for 문이 작동을 안함.....ㅠ.ㅠ
실력키우기 마름모 사각형 문제거든요..
코드블럭으로 출력하면 정답하고 똑같이 나오는데.
채점 프로그램 돌리면......가운데 줄 하나만 나와요..


  A                        B C D 
B C D    이렇게 나오는게          이렇게만 나옵니다.
  E

밑에 코드인데.. 어디가 문제인가요.


#include <stdio.h>

char arr[101][101]={" "};
int n;

void fill() //좌표 4방향으로 움직이면서 문자 채우기..
{
int i;
int m = n-1;
int x = 0, y = n;
char a='A';

while (m > 0) {
  x++;
for (i = 1; i <= m; i++){
arr[x][y] = a++;
if(a >'Z') a='A';
x++; y--;
  }
for (i = 1; i <= m; i++){
arr[x][y] = a++;
if(a>'Z') a='A';
x++;y++;
}

for (i = 1; i <= m; i++){
arr[x][y] = a++;
if(a>'Z') a='A';
x--;y++;
}
for (i = 1; i <= m; i++){
arr[x][y] = a++;
if(a>'Z') a='A';
x--;y--;
}
m--;
}
x++;
arr[x][y]=a;
}
int main()
{
    int i,j;
    scanf("%d",&n);
    fill();
    for(i=1;i<=2*n;i++){  //출력하는 부분 여기가 문제 같은데.. 어디가 작동안하는거죠?
        for(j=1;j<=2*n;j++){
            printf("%c ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
추천 0

댓글목록

하동훈님의 댓글

하동훈 아이피 220.♡.198.247 작성일

제가 위의 코드를 다 자세히 잃어보지 않고 이해하지 않은 상태에서 알려드립니다. 도움이 될 거라고 생각되는 팁들을 알려드릴게요. 첫 번째로 채점할 때는 문제에서 제시한 정답과 완벽히 일치해야합니다. 뛰어쓰기 하나라도 틀리면 틀렸다고 합니다. 두 번째로 for문에 i++식의 연산식이 있는데 알아두어야할 점이 ++i나 i++이나 결과는 똑같습니다. 만일 a=++i나 a=i++로 하면 a에 저장된 결과는 다르게됩니다. 그러나 i++로 할 경우 저장할 대상이 없으므로 ++i처럼 바로 i에 들어있는 값에 1을 더하고 끝납니다. 이 점을 유히해야합니다. 감사합니다. (피곤해서 잘 못썼으나 이해 부탁드립니다.)

홍형엽님의 댓글

홍형엽 아이피 218.♡.35.1 작성일

어떻게푸는지 기억안나서 그냥 풀었던코드 올려드립니다
#include <stdio.h>
 
int main(int argc, char* argv[]) {
    char sol[199][199];
    char c = 'A';
    int l; scanf("%d", &l);
    int i, j, t = 0, st = 0;
 
    for (i = 0; i < (l * 2) - 1; ++i) {
        for (j = 0; j < (l * 2) - 1; ++j) {
            sol[i][j] = ' ';
        }
    }
 
    for (; t < l; ++t) {
        for (st = l - t, i = t, j = l - 1; st > 0; ++i, --j, --st) {
            sol[i][j] = c;
            c = (c - 'A' + 1) % ('Z' - 'A' + 1) + 'A';
        }
        for (st = l - t - 1, j += 2; st > 0; ++i, ++j, --st) {
            sol[i][j] = c;
            c = (c - 'A' + 1) % ('Z' - 'A' + 1) + 'A';
        }
        for (st = l - t - 1, i -= 2; st > 0; --i, ++j, --st) {
            sol[i][j] = c;
            c = (c - 'A' + 1) % ('Z' - 'A' + 1) + 'A';
        }
        for (st = l - t - 2, j -= 2; st > 0; --i, --j, --st) {
            sol[i][j] = c;
            c = (c - 'A' + 1) % ('Z' - 'A' + 1) + 'A';
        }
    }
 
    for (i = 0; i < (l * 2) - 1; ++i) {
        for (j = 0; j < (l * 2) - 1; ++j) {
            printf("%c ", sol[i][j]);
        } printf("\n");
    }
    return 0;
}

홍형엽님의 댓글

홍형엽 아이피 218.♡.35.1 작성일

http://jungol.co.kr/bbs/faq.php
여기도 참고해 보세요


HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 070-7163-5782 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.