Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

플라칸

[C++]스도쿠 풀어주는 프로그램 만드는 과정2 본문

정보보호전문가가 되자!

[C++]스도쿠 풀어주는 프로그램 만드는 과정2

플라칸 2018. 10. 2. 18:35

#include<iostream>

using namespace std;


void putQ(int a,int b,int c,int *Q);

void match33(int a,int b,int c,int *Q);

void printsu(int a,int b,int,int *Q);

void runwidth(int a,int b,int c,int*Q);


int main()

{

int Q[81];

while(true)

{

cout<<"select number"<<endl<<"1을 누르고 x좌표, y좌표, 원하는 숫자를 입력하시오."<<endl<<"3을 누를 시 프로그램을 종료합니다.";

int a,b,c,d;

cin>>d;

switch(d){

case 1:

cout<<"case 1"<<endl;

cin>>a>>b>>c;

putQ(a,b,c,&Q[0]);

printsu(a,b,c,&Q[0]);

break; 

case 2:

cout<<"case 2"<<endl;

cin>>a>>b;

printsu(a,b,c,&Q[0]);

break;

case 3:

cout<<"case 3"<<endl;

return 0;

default:

cout<<"default";

cin>>d;

}

//s

}

return 0;

}



void putQ(int a,int b,int c,int *Q)

{

int *W=Q;

Q=Q+sizeof(int)*a*9+sizeof(int)*b;

*Q=c;

Q=W;

/*delete Q,W;

free Q,W;*/

return;

//sdfsdfsdfsdfds

}


void match33(int a,int b,int c, int *Q)

{

return;

}


void printsu(int a,int b,int,int *Q)

{

cout<<*(Q+sizeof(int)*a*9+sizeof(int)*b);

//delete Q;

return;

}


void runwidth(int a,int b,int c,int*Q)

{

return;


이렇게 여태까지 만들어둔 코드가 있다.

switch case에서 default는 더이상 필요하지 않으므로 지워주고 포인터 관련 버그를 고쳐준다.

Q=Q+sizeof(int)*a*9+sizeof(int)*b;을 Q=Q*a*9+b;로 고쳐주면 해결

그리고 케이스 1에서의 printsu를 제거해주자. 이젠 필요가 없다.

#include<iostream>

using namespace std;


void putQ(int a,int b,int c,int *Q);

void match33(int a,int b,int c,int *Q);

void printsu(int a,int b,int,int *Q);

void runwidth(int a,int b,int c,int*Q);


int main()

{

int Q[81];

while(true)

{

cout<<"select number"<<endl<<"1을 누르고 x좌표, y좌표, 원하는 숫자를 입력하시오."<<endl<<"3을 누를 시 프로그램을 종료합니다.";

int a,b,c,d;

cin>>d;

switch(d){

case 1:

cout<<"case 1"<<endl;

cin>>a>>b>>c;

putQ(a,b,c,&Q[0]);

printsu(a,b,c,&Q[0]);

break; 

case 2:

cout<<"case 2"<<endl;

cin>>a>>b;

printsu(a,b,c,&Q[0]);

break;

case 3:

cout<<"case 3"<<endl;

return 0;

}

//s

}

return 0;

}



void putQ(int a,int b,int c,int *Q)

{

int *W=Q;

Q=Q+a*9+b;

*Q=c;

Q=W;

/*delete Q,W;

free Q,W;*/

return;

//sdfsdfsdfsdfds

}


void match33(int a,int b,int c, int *Q)

{

return;

}


void printsu(int a,int b,int,int *Q)

{

cout<<*(Q+a*9+b);

//delete Q;

return;

}


void runwidth(int a,int b,int c,int*Q)

{

return;

어느 기능을 추가해야할지 잘 정하지 못했지만 일단 버그를 수정한것이다.

이젠 오류가 뜨지 않는다. 완벽하다

Comments