Difference between r1.4 and the current
@@ -1,9 +1,8 @@
= 참가자 =
|| 강사 || [유재범] ||
||<|4> 새싹 || [우승진] || 결석 ||
|| [서재훈] || 결석 ||
|| [송준호] || 출석 ||
= 수업 내용 =
* 포인터 배열
|| 강사 || [유재범] ||
||<|4> 새싹 || [우승진] || 결석 ||
|| [구동완] || 출석 ||
|| [구동완] || 결석 ||
= 수업 내용 =
* 포인터 배열
@@ -19,33 +18,27 @@
* 지하철 노선도
* 9호선, 4호선
* 9호선의 차간격 : 5분
* 4호선의 차간격 : 3분
* 9호선의 역간격 : 5분
* 4호선의 역간격 : 3분
* input : 출발역, 도착역* output : 도착까지 걸린 시간, 경로(출발역, 환승역, 도착역)
* Bonus 1
* 지하철 노선도
* 9호선 급행열차도 구현
* 급행열차의 차간격 : 15분
* 급행열차의 역간격 : 15분
* Bonus 2
* 지하철 노선도
* 모든 지하철 노선도
* 밥사달라고? 과제나 제대로 해오시지!
== 송준호 ==
'''1. 퍼미테이션 계산기''' : 완성
05/12 수정. permitation의 핵심은? nPr=n*(n-1)P(r-1)!
{{{
@@ -55,13 +48,14 @@
#pragma warning(disable:4996)
}
int main(){
int permi(int a){
if(a > 0){
return (a*permi(a - 1));
int permi(int a, int b){
if (b > 1){
return a*permi(a - 1, b - 1);
} if (a == 0){
return 1;
if (b = 1){
return a;
}int main(){
@@ -76,72 +70,149 @@
}
} while (n < r); //n<r인지 판별함.
return 0;
}
'''2. 지하철 노선도'''
지하철 역명과 숫자를 일대일 대응시키는 방법을 찾지 못했음.
현재 미완성된 코드:
{{{
#include <stdio.h>
int nine[30];
for (int i = 0; i < 30; i++){
nine[i] = i * 3;
}
int four_up[22];
for (int a = 0; a < 22; a++){
four_up[a] = a * (-5);
}
int four_down[26];
four_down[b] = b * (-5);
printf("출발역과 도착역을 순서대로 입력하세요\n");
// 앞에 사당 꼭 추가하기!
char ninestation[60][10] = { "개화", "김포공항", "공항시장", "신방화", "마곡나루", "양천향교", "가양", "증미", "등촌", "염창", "신목동",
"선유도", "당산","국회의사당","여의도","샛강","노량진","노들","흑석","동작","구반포","신반포","고속터미널","사평","신논현",
"언주","선정릉","삼성중앙","봉은사","종합운동장" };
char fourstation_top[44][18] = { "동작", "이촌", "신용산", "삼각지", "숙대입구", "서울역", "회현", "명동", "충무로", "동대문역사문화공원", "동대문",
"혜화", "한성대입구", "성신여대입구", "길음", "미아사거리", "미아", "수유", "쌍문", "창동", "노원", "상계", "당고개" };
char fourstation_down[52][18] = {"동작", "총신대입구", "사당", "남태령", "선바위", "경마공원",
"대공원", "과천", "정부과천청사", "인덕원", "평촌", "범계", "금정", "산본", "수리산", "대야미", "반월", "상록수", "한대앞", "중앙", "고잔", "초지", "안산", "신길온천",
"정왕", "오이도" };
for (int k = 0; k < 30; k++){
ninestation[k][10] = nine[k];
printf("%d", ninestation[5]); // 테스트용 코드 한줄. 실행시 숫자가 천만 단위로 나옴.
}
}}}
note: 뭘 써야 할지 모르겠습니다... 헬 노가다 코딩을 한다면 (30+48)C2를 해서 3003번의 출발/도착 case를 구해서 약 9천줄 정도의 코드로 구현 가능할 거 같습니다만.
} while (n < r); //n<r인지 판별함.
result = permi(n) / permi(n - r);
result = permi(n, r);
printf("값:%d", result);return 0;
}
}
}}} * 이게 퍼미테이션인가요 펙토리알이지... main에서 permi함수는 한 번만 쓰세요 - [유재범]
'''2. 지하철 노선도'''
15/05/12. FINISH
{{{
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning (disable:4996)int main(){
int findstation(char a[20])
{
int var = 0;
char ninestation_west[40][12] = { "동작", "흑석", "노들", "노량진", "샛강", "여의도", "국회의사당", "당산", "선유도", "신목동", "염창",
"등촌", "증미", "가양", "양천향교", "마곡나루", "신방화", "공항시장", "김포공항", "개화" };
char ninestation_east[22][12] = { "동작", "구반포", "신반포", "고속터미널", "사평", "신논현",
"언주", "선정릉", "삼성중앙", "봉은사", "종합운동장" };
char fourstation_top[44][20] = { "동작", "이촌", "신용산", "삼각지", "숙대입구", "서울역", "회현", "명동", "충무로", "동대문역사문화공원", "동대문",
"혜화", "한성대입구", "성신여대입구", "길음", "미아사거리", "미아", "수유", "쌍문", "창동", "노원", "상계", "당고개" };
for (int b = 0; b < 26; b++){
char fourstation_down[52][20] = { "동작", "이수", "사당", "남태령", "선바위", "경마공원",
"대공원", "과천", "정부과천청사", "인덕원", "평촌", "범계", "금정", "산본", "수리산", "대야미", "반월", "상록수", "한대앞", "중앙", "고잔", "초지", "안산", "신길온천",
"정왕", "오이도" };
for (int k = 0; k < 30; k++){
if (strcmp(a, ninestation_west[k])==0){
var = k * 3;
break;
}
else if (strcmp(a, ninestation_east[k])==0){
var = k * 3;
break;
}
else if (strcmp(a,fourstation_down[k])==0){
var = k * (-5);
break;
}
else if (strcmp(a,fourstation_top[k])==0){
var = k * (-5);
break;
} // 어느 역인지 확인하는 작업
} /* char departure[20];
return var;
}
int main(){
int transfer = 0; // 환승여부 판단
int depvar = 0, arrvar = 0, time = 0; // 사당으로부터의 거리
char departure[20];
char arrive[20];printf("출발역과 도착역을 순서대로 입력하세요\n");
scanf("%s %s", departure, arrive);
scanf("%s %s", departure, arrive);
depvar = findstation(departure);
arrvar = findstation(arrive);
if (depvar*arrvar < 0){
transfer = 1;
}
depvar = abs(depvar);
arrvar = abs(arrvar);
printf("출발역: %s\n도착역:%s\n소요시간:%d\n", departure, arrive, depvar + arrvar);
if (transfer == 1){
printf("환승역:사당\n");
} return 0;
}
}}}
== 우승진 ==
퍼미테이션 계산기
#include<stdio.h>
#pragma warning(disable : 4996)
int pac(int a)
{
if (a == 1)
{
return 1;
}
else
{
return a*pac(a - 1);
}
}
int main()
{
int n, m,result;
printf("npm 입니다 n과m을 넣어주세요");
scanf("%d%d",&n,&m);
n = pac(n);
m = pac(m);
result = n / m;
printf("result : %d", result);
while (1);
return 0;
= 질문 및 방명록 =
* 과제에서 익숙한게 보이는데? 급행열차는 직접 추가한듯 하지만ㅋㅋㅋㅋ - [장우진]
* 쉿! - [유재범]
------------------
[새싹교실/2015/수업시작은5시반]
수업 내용 ¶
- 포인터 배열
- 배열 포인터
- 함수 포인터
- 재귀 함수
- 배열 넘기기 확인
과제방 ¶
- Permitation (nPm)
- 1
- Recursive(재귀 함수)
- 1
- 지하철 노선도
- 9호선, 4호선
- 9호선의 역간격 : 5분
- 4호선의 역간격 : 3분
- 9호선의 역간격 : 5분
- 9호선, 4호선
- input : 출발역, 도착역
- output : 도착까지 걸린 시간, 경로(출발역, 환승역, 도착역)
- Bonus 1
- 지하철 노선도
- 9호선 급행열차도 구현
- 급행열차의 역간격 : 15분
- 급행열차의 역간격 : 15분
- 지하철 노선도
- Bonus 2
- 지하철 노선도
- 모든 지하철 노선도
- 지하철 노선도
- 밥사달라고? 과제나 제대로 해오시지!
과제 ¶
송준호 ¶
1. 퍼미테이션 계산기 : 완성
05/12 수정. permitation의 핵심은? nPr=n*(n-1)P(r-1)!
05/12 수정. permitation의 핵심은? nPr=n*(n-1)P(r-1)!
#include <stdio.h> #pragma warning(disable:4996) int permi(int a, int b){ if (b > 1){ return a*permi(a - 1, b - 1); } if (b = 1){ return a; } } int main(){ int n = 0, r = 0, result=0; printf("퍼미테이션 계산기. nPr을 계산합니다. n,r에 들어갈 수를순서대로 입력하세요.\n"); do{ scanf("%d %d", &n, &r); if (n < r){ printf("n>=r이여야 합니다. 다시 입력하세요.\n"); } } while (n < r); //n<r인지 판별함. result = permi(n, r); printf("값:%d", result); return 0; } }
- 이게 퍼미테이션인가요 펙토리알이지... main에서 permi함수는 한 번만 쓰세요 - 유재범
15/05/12. FINISH
#include <stdio.h> #include <stdlib.h> #include <string.h> #pragma warning (disable:4996) int findstation(char a[20]) { int var = 0; char ninestation_west[40][12] = { "동작", "흑석", "노들", "노량진", "샛강", "여의도", "국회의사당", "당산", "선유도", "신목동", "염창", "등촌", "증미", "가양", "양천향교", "마곡나루", "신방화", "공항시장", "김포공항", "개화" }; char ninestation_east[22][12] = { "동작", "구반포", "신반포", "고속터미널", "사평", "신논현", "언주", "선정릉", "삼성중앙", "봉은사", "종합운동장" }; char fourstation_top[44][20] = { "동작", "이촌", "신용산", "삼각지", "숙대입구", "서울역", "회현", "명동", "충무로", "동대문역사문화공원", "동대문", "혜화", "한성대입구", "성신여대입구", "길음", "미아사거리", "미아", "수유", "쌍문", "창동", "노원", "상계", "당고개" }; char fourstation_down[52][20] = { "동작", "이수", "사당", "남태령", "선바위", "경마공원", "대공원", "과천", "정부과천청사", "인덕원", "평촌", "범계", "금정", "산본", "수리산", "대야미", "반월", "상록수", "한대앞", "중앙", "고잔", "초지", "안산", "신길온천", "정왕", "오이도" }; for (int k = 0; k < 30; k++){ if (strcmp(a, ninestation_west[k])==0){ var = k * 3; break; } else if (strcmp(a, ninestation_east[k])==0){ var = k * 3; break; } else if (strcmp(a,fourstation_down[k])==0){ var = k * (-5); break; } else if (strcmp(a,fourstation_top[k])==0){ var = k * (-5); break; } // 어느 역인지 확인하는 작업 } return var; } int main(){ int transfer = 0; // 환승여부 판단 int depvar = 0, arrvar = 0, time = 0; // 사당으로부터의 거리 char departure[20]; char arrive[20]; printf("출발역과 도착역을 순서대로 입력하세요\n"); scanf("%s %s", departure, arrive); depvar = findstation(departure); arrvar = findstation(arrive); if (depvar*arrvar < 0){ transfer = 1; } depvar = abs(depvar); arrvar = abs(arrvar); printf("출발역: %s\n도착역:%s\n소요시간:%d\n", departure, arrive, depvar + arrvar); if (transfer == 1){ printf("환승역:사당\n"); } return 0; }
우승진 ¶
퍼미테이션 계산기
#include<stdio.h>
#pragma warning(disable : 4996)
#pragma warning(disable : 4996)
int pac(int a)
{
{
if (a == 1)
{
else
{
}{
return 1;
}else
{
return a*pac(a - 1);
}int main()
{
{
int n, m,result;
printf("npm 입니다 n과m을 넣어주세요");
scanf("%d%d",&n,&m);
n = pac(n);
m = pac(m);
result = n / m;
printf("result : %d", result);
while (1);
return 0;
}printf("npm 입니다 n과m을 넣어주세요");
scanf("%d%d",&n,&m);
n = pac(n);
m = pac(m);
result = n / m;
printf("result : %d", result);
while (1);
return 0;