int age[100][100] = { 0, };

char name[100][100] = { 0, };

char strname[100][100] = { 0, };

int a, b, c, d, e;

int choice, choice1;

int choice2, choice3;

char selectname[100];

int selectage;

int select, select1;

int select2, select3;

int count = 0;

char name1;

int age1;

int menu;

int swapname;

int swapage;

int strinput[100];


// 행, 열의 개수를 선택 행 = choice2 , 열 = choice3;

printf("몇 층 입니까 : ");

scanf("%d", &choice2);

printf("몇 명 입니까 : ");

scanf("%d", &choice3);



printf("입주민의 정보를 입력하세요\n");


for (int q = 0; q <= choice2 - 1; q++)

{

printf("이름 입력 : ");

scanf("%s", &name[q]);

}


for (int q = 0; q <= choice2 - 1; q++)

{

printf("이름 : %s\n", name[q]);

}


for (int i = 0; i <= choice2 - 1; i++)

{


for (int j = 0; j <= choice3 - 1; j++)

{

printf("10%d동 10%d호\n", i + 1, j + 1);

printf("나이 입력 : ");

scanf("%d", &age1);


age[i][j] = age1;

}


printf("\n");

}

while (1)

{

for (int i = 0; i <= choice2 - 1; i++)

{

printf("-----------------------------------------------------------------------------------------------\n");

for (int j = 0, q = 0; j <= choice3 - 1; j++, q++)

{

printf("ㅣ이름 : %s 나이 : %d", name[q], age[i][j]);

}

printf("\n");

}

printf("-----------------------------------------------------------------------------------------------\n");


printf("1. 이사, 2. 입주\n");

scanf("%d", &choice);


if (choice == 1)

{

printf("이사 할 입주민의 정보를 입력하세요\n\n");

printf("이름 : ");

//getchar();

scanf("%s", &selectname);

printf("나이 : ");

scanf("%d", &selectage);


printf("\n\n1. 왼쪽으로 밀기, 2. 오른쪽으로 밀기, 3. 한명만 이사가기, 4. 이사 간 뒤 앞으로 입주하기\n");

scanf("%d", &menu);


for (int i = 0; i <= choice2 - 1; i++)

{

for (int j = 0; j <= choice3 - 1; j++)

{

if (name[i][j] == selectname && age[i][j] == selectage)

{

select = i;

select1 = j;

break;

}

}

}


//index 범위 벗어나지 않게 주의하기 


if (menu == 1)

{

//왼쪽으로 밀기

swapname = name[select][select1];

swapage = age[select][select1];

for (int j = select1; j <= choice3 - 1; j++)

{

name[select][j] = name[select][j + 1];

age[select][j] = age[select][j + 1];

if (name[select][j] <= choice3 - 1 && age[select][j] <= choice3 - 1)

{

break;

}

}

name[select][choice3 - 1] = swapname;

age[select][choice3 - 1] = swapage;

}


if (menu == 2)

{

//오른쪽으로 밀기

// 끝에 있는 값 

swapname = name[select][choice3 - 1];

swapage = age[select][choice3 - 1];

for (int j = choice3 - 1; j >= 0; j--)

{

name[select][j] = name[select][j - 1];

age[select][j] = age[select][j - 1];

if (name[select][j] <= choice3 - 1 && age[select][j] <= choice3 - 1)

{

break;

}

}

//첫번째 값에 끝에 있는 값 넣기

name[select][0] = swapname;

age[select][0] = swapage;

}


if (menu == 3)

{

//한명만 이사

for (int j = select1; j <= choice3 - 2; j++)

{

name[select][j] = 0;

age[select][j] = 0;


if (name[select][j] <= choice3 - 1 && age[select][j] <= choice3 - 1)

{

break;

}

}

}


if (menu == 4)

{

//이사간 후 앞으로 땡기기

for (int j = select1; j <= choice3 - 2; j++)

{

name[select][j] = name[select][j + 1];

age[select][j] = age[select][j + 1];

name[select][j + 1] = 0;

age[select][j + 1] = 0;


if (name[select][j] <= choice3 - 1 && age[select][j] <= choice3 - 1)

{

break;

}

}

}

}


}



문자열 이제 첨 배워서 감이 잘 안오네 아오