/*
#include<stdio.h>
void point(int *kk) {
printf("%p\n", kk);
printf("%d\n", *kk);
*kk = 50;
printf("%d\n", *kk);
}
int main() {
int a = 10;
int *pa = &a;
printf("%p\n", &a);
point(&a);
printf("%d\n", a);
printf("%p\n", pa);
}
*/
// Quest : 이중 포인터를 이용해서 배열을 접근하는 프로그램을 작성하세요
/*
#include<stdio.h>
void controller(int **ptrA) {
**ptrA[5][5] = 5;
}
int main() {
int *pa;
int **ptrA;
int map[10][10] = {0};
*pa=map;
**ptrA = pa;
// > connect
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
controller(ptrA);
for(int i=0; i<10; i++) {
for(int j=0; j<10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
}
*/
/*
#include<stdio.h>
void controller(int *pt) {
printf("\n");
for(int i=0; i<5; i++) {
//printf("%d ", pt[i]);
pt[i] = pt[i] * 10;
}
}
void beta(int **pppt) {
printf("!!!!!\n");
for(int i =0; i<5; i++) {
for(int j=0; j<5; j++) {
//printf("(%d,%d)\n", i, j);
printf("%d ", *pppt[i][j]);
}
printf("\n");
}
}
int main() {
int map[5][5] = {1,2,3,4,5};
int **ppttMap = map;
for(int i =0; i<5; i++) {
for(int j=0; j<5; j++) {
//printf("(%d,%d)\n", i, j);
printf("%p ", &map[i][j]);
}
printf("\n");
}
printf(">>>>>>\n");
beta(ppttMap);
printf(">>>>>>\n");
int arr[10] = {1,2,3,4,5};
int *pta = arr;
for(int i=0; i<5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for(int i=0; i<5; i++) {
printf("%d ", *(pta+i));
}
printf("\n");
controller(pta);
for(int i=0; i<5; i++) {
printf("%d ", pta[i]);
}
printf("\n");
}
*/
//#include<stdio.h>
//
//struct node_
//{
// int a,b,c,d,e; // 20
//};;
//
//int main() {
// int a[] = {10, 20, 30, 40, 50};
// int *pta = a;
//
// //printf("%d\n", *(pta+1));
// char c[10] = {1,2,3,4,5};
// char *ptc = c;
//
// struct node_ node[10];
// int *ptN = &node;
//
// *pta + 1; // 4
// *ptc + 1; // 1
//
//
//
// for(int i=0; i<5; i++) {
// printf("%d : %d\n", a[i], &a[i]);
// }
//
//
//}
//#include <stdio.h>
//
//void myswap(int *a, int *b)
//{
// int c;
// if(*a>*b)
// {
// c=*a;
// *a=*b;
// *b=c;
// }
//}
//
//main()
//{
// int a, b;
// scanf("%d%d", &a, &b);
// myswap(&a, &b);
// printf("%d %d", a, b);
//}
/*
#include <stdio.h>
int main()
{
int n,a,i;
scanf("%d", &n);
for(i=0;;i++)
{
a=n%10;
printf("%d", a);
n=n/10;
if(n<1)
{
break;
}
}
return 0;
}
*/
//#include<stdio.h>
//#define MAXSIZE 5
//
//int stack[MAXSIZE];
//int top=0;
//
//void input(int k) {
// if(top==MAXSIZE) {
// printf("STACK is Full\n");
// return ;
// }
// stack[top]=k;
// top++;
//}
//
//void output() {
// top--;
// printf("output %d\n", stack[top]);
// stack[top] = 0;
//}
//
//void show() {
// for(int i=0;i<MAXSIZE;i++) {
// printf("%d : %d\n", i, stack[i]);
// }
//}
//
//int main() {
// int n, k;
//
// for(;;) {
// printf("1:input, 2:output, 3:show");
// scanf("%d", &n);
//
// switch(n) {
// case 1:
// printf("input data : ");
// scanf("%d", &k);
// input(k);
// break;
// case 2:
// output();
// break;
// case 3:
// show();
// break;
// default:
// printf("INOUT ERRIOR");
// break;
// }
//
// }
//
//}
/*
#include <stdio.h>
#define MAXMIZE 1000
int stack[MAXMIZE];
int length=0;
int sum=0;
void pop()
{
length--;
sum-=stack[length];
stack[length]=0;
}
void push(int a)
{
stack[length]=a;
sum+=stack[length];
length++;
}
int main()
{
int n,i,arr[1000];
scanf("%d", &n);
for(i=0;i<n;i++){
scanf("%d", &arr[i]);
if(arr[i]==0)
{
pop();
}
else
{
push(arr[i]);
}
}
printf("%d", sum);
}
*/
/*
#include<stdio.h>
int main() {
int stack[10000] = {0}, top=0;
int i, n, k;
int sum=0;
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &k);
if(k) {
stack[top++] = k;
}
else {
top--;
}
}
for(i=0; i<top;i++) {
sum += stack[i];
}
printf("%d", sum);
}
*/