/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
char data[2001];
fgets(data, 2000, stdin);
printf("%s", data);
return 0;
}
*/
/*
#include <stdio.h>
typedef struct
{
int number,gas;
}machine;
int main()
{
int a,b,n,i,j;
machine d[101]={},temp;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&d[i].number,&d[i].gas);
}
for(i=1;i<n;i++) //---전체 순서 사이클
{
for(j=1;j<=n-i;j++) //---비교 사이클
{
if(d[j].number>d[j+1].number) ---1805 구조체 연습(구조체 정렬) 입체기동장치 생산공장
{
temp=d[j];
d[j]=d[j+1];
d[j+1]=temp;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d",d[i].number,d[i].gas);
printf("\n");
}
return 0;
}
*/
/*
#include <stdio.h>
typedef struct
{
int number,math,infor;/*(information)*/ /* (밑에 코드가 주석이 안돼서 한번 더함)
} student;
int main()
{
int n,i,j;
student a[1001]= {},temp;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%d %d",&a[i].math,&a[i].infor); ----3017 데이터 정렬(구조체 정렬) 정렬 기준
a[i].number=i;
}
for(i=1; i<n; i++)
{
for(j=1; j<=n-i; j++)
{
if(a[j].math<a[j+1].math) //번호가 아니고 점수로 비교하는거라서 내림차순으로 해야함
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
else if(a[j].math==a[j+1].math)
{
if(a[j].infor<a[j+1].infor) //번호가 아니고 점수로 비교하는거라서 내림차순으로 해야함
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
else if(a[j].infor==a[j+1].infor)
{
if(a[j].number>a[j+1].number) //번호로 비교하는거라서 오름차순으로 해야함
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%d %d %d",a[i].number,a[i].math,a[i].infor);
printf("\n");
}
return 0;
}
*/
/*
#include <stdio.h>
typedef struct
{
int year,month,date;
char name[100];
} schedule;
int main()
{
int n,i,j;
schedule a[101]={},temp;
scanf("%d",&n);
for(i=1; i<=n; i++)
{
scanf("%s %d %d %d",a[i].name,&a[i].year,&a[i].month,&a[i].date);
}
for(i=1; i<n; i++)
{
for(j=1; j<=n-i; j++)
{
if(a[j].year>a[j+1].year)
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
else if(a[j].year==a[j+1].year)
{
if(a[j].month>a[j+1].month)
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
else if(a[j].month==a[j+1].month) -------3019 구조체 연습 (구조체 정렬) 스케줄 정리
{
if(a[j].date>a[j+1].date)
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
else if(a[j].date==a[j+1].date)
{
if(strcmp(a[j].name,a[j+1].name)>0)//앞의 값의 사전 페이지수 에서 뒤의값의 사전 페이지를 뺀다.
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
}
}
for(i=1;i<=n;i++)
{
printf("%s",a[i].name);
printf("\n");
}
return 0;
}
재귀함수 recursive function
함수 안에서 자신을 다시 호출
자신으로 다시 정의 내린다.
rec(n) : n 부터 1까지 출력 하는 함수
: n출력 -> n-1출력 -> .... 1출력
: n출력 -> n-1부터 1까지 출력
: n출력 -> rec(n-1)
#include <stdio.h>
void rec(int n)
{
if(n==0) return ;
printf("%d ",n);
rec(n-1); //재귀호출
}
int main()
{
rec(80);
}
rec(n) : 1 부터 n까지 출력 하는 함수
: 1출력 -> ... n-1출력 -> n출력
: 1부터 n-1까지 출력 -> n출력
: rec(n-1) ->n출력
*/
/*
#include <stdio.h>
void rec(int n)
{
if(n==0) return ; //우선 n부터 0까지 가면서 출력을 대기시켜놓고 다시 return 하면서 돌아보며 값들을 출력한다
rec(n-1);
printf("%d ",n); --1901 재귀함수 1부터 n까지 출력하기
}
int main()
{
int n;
scanf("%d",&n);
rec(n);
}
수우우우우우우우우우욱제에에에에에에에에에
재귀함수로 ) a부터 b까지 출력하기
재귀함수로 ) a부터 b까지 3의배수만 출력하기
*/