c언어 달팽이배열 소스인데 실행 되도록 완성좀 해주세요.

c언어 달팽이배열 소스인데 실행 되도록 완성좀 해주세요.

작성일 2010.01.25댓글 1건
    게시물 수정 , 삭제는 로그인 필요

소스완성좀 부탁드릴께요..

그리고 질문좀..

이거 초보 책 중간부분에 나오는건데요...

도저히 이해를 못하겠더라고요...

얼마나 공부하면 풀 수있는문제인가요?

풀으라고 하는문제를 못풀고 있으니

제 머리가 부족한건 아닌가 해서요..

이렇게 거의다 완성된 소스를 보고도 이해를 못하고있어요.

 

너무 힘듭니다...재미도 떨어지고 있고요..

이 c언어 문법이라고 해야하나요 이걸 다 공부한다음에는 무엇을 해야하나요?
(배운것에 대한 결과물을 보려면)

예를들어 3*3큐브게임을 일반 게임처럼(간단한 그림판그래픽을통한)

만들려면 공부를 얼마나 해야하는걸까요?

 

성실한답변 부탁드립니다. 감사합니다.

 

 

#include "stdio.h"

void main()
{
 int a[20][20],x=0,y=-1,direct=1,num=1,ban,i,j,count=0;
 
 do
 {
  printf("크기를 입력하세요 (최고 20) : ");
  scanf("%d", &ban);
 } while(ban<=0 || ban>=20);
 
 count = ban;
 
 while(count!=0)
 {
  for(i=0;i  {
   y+=direct;
   a[x][y]=num++;
  }
 
  count--;
  for(i=0;i  {
   x+=direct;
   a[x][y]=num++;
  }
  direct*=-1;
 }
 
 for(i=0;i {
  for(j=0;j  {
   printf("%3d",a[i][j]);
  }
  printf("\n");
 }
}


#c언어 달팽이배열

profile_image 익명 작성일 -

우선 프로그램에 대한 답변은 아래와 같습니다.

 

ban>20을 한 이유는, 원래 코드처럼 하면 20은 먹히지가 않아서 최고 숫자로 20을 입력하기 위함입니다.

 

달팽이배열은 원리는 아주 간단합니다. 생각하는데까지 시간이 걸리는 것 뿐입니다.

 

핵심은 방향성입니다. 처음은 +, 다음은 -, 다시 + 이런 식으로 계속 반복됨을 알 수가 있지요.

 

여기서는 배열을 이용해서 x,y좌표값을 주고 그안에 숫자를 넣는 방식을 취했습니다. 책에 잘 설명이 되어 있을 것이라고 생각합니다.

 

#include "stdio.h"

void main()
{
 int a[20][20],x=0,y=-1,direct=1,num=1,ban,i,j,count=0;
 
 do
 {
  printf("크기를 입력하세요 (최고 20) : ");
  scanf("%d", &ban);
 } while(ban<=0 || ban>20);
 
 count = ban;
 
 while(count!=0)
 {
  for(i=0;i<count;i++)  {
   y+=direct;
   a[x][y]=num++;
  }
 
  count--;
  for(i=0;i<count;i++)  {
   x+=direct;
   a[x][y]=num++;
  }
  direct*=-1;
 }
 
 for(i=0;i<ban;i++) {
  for(j=0;j<ban;j++)  {
   printf("%3d",a[i][j]);
  }
  printf("\n");
 }
}

프로그램 외에 대한 대답은 우선 끊임없는 훈련이 필요하다는 것입니다. 방금전같은 문제를 풀기 위해서는, 주어진 문제를 어떻게 풀어야 하는지에 대한 훈련이 필요합니다. 이산수학, 자료구조, 알고리즘 등등의 수업 혹은 책을 읽는다면 체계적으로 사고를 할 수 있는 길을 알 수 있습니다.

 

C언어는 단지 우리가 무언가를 구현하고자 하는 것에 대한 도구일 뿐입니다. 이 도구를 프로그래밍 언어라고 하는데 자바, 파이썬, 루비, C++, 델파이 등등 많은 언어들이 존재합니다. 이러한 언어의 기본을 알게 되면 응용 프로그램을 만들면서 실력을 쌓으셔야겠죠? 큐브 게임, 야구 게임 등등 많은 예제 프로그램들이 책 혹은 인터넷에 많이 소개되어 있습니다. 이러한 것들을 하나하나 접하면서, 우선은 본인이 어떻게 풀어야 할지를 도전해보고 나서, 해법을 보신다면 본인의 실력이 하루하루 성장함을 알 수 있게 되실 겁니다.

 

누구나 처음에는 좌절하기 마련이니 기운내시고 더욱 정진하도록 하세요. ^^

 

[c언어] 달팽이 배열 지적좀 해주세요/

... 봐주세요;; 안녕하세요^^ 일단 먼저 쓴소리 한번... ㅠ) 저 소스 짜실때 님이 달팽이 배열에 대해... if문 실행... direct = (direct+1)%4; //처음 실행은 direct가...

c언어 소스설명좀 해주세요.

... 해주세요. 발표수업을 해야하는데 제가 C는 완전 초보라서... 무슨 내용의 소스를 쓴건지 알수가 없어서 이렇게 도움을 부탁드립니다. 되도록이...

c언어 제발 해결좀해주세요 ㅠㅠ

... 제발 완성좀.... 아니면 힌트라도... #include<stdio.h... //전역변수선언 int A[4]={4,3,2,1};//배열로... hanoi_tower(count,A,B,C); //하노이타워함수를불러내어 실행. }...

코딩 C언어 기초좀 알려주세여 ㅠㅠ

... 먼저 실행해 본 2번째와 3번째의 소스코드를 붙여넣어서 비주얼스튜디오에서 공부해주세요 이... [출처] [C 언어] main()과 return 사용이유, 설명|작성자 See the...

c언어계열로 쭉공부하고 싶은데요..

... 주세요...(책제목추천 환영) 우선 제가 보유하고 있는책이요.. C언어21일완성, C로배우는알고리즘, c... 되도록이면 저녁에 물어보셨으면 합니다. 낮에는...

C언어.구조체소스수정해주세요.

... 돼고 실행도 되는데요. 수정해주세요. 그리고 5번... 되도록 간단한 소스를 보면서 알고리즘을 익히시란... 포인터인데 배열까지 있으면 허무하죠. scanf함수는...



    test ad