More actions
imported>computer6561 No edit summary |
(Repair batch-0005 pages from live compare) |
||
| (12 intermediate revisions by 4 users not shown) | |||
| Line 7: | Line 7: | ||
| rowspan="4" | 새싹 | | rowspan="4" | 새싹 | ||
| [[우승진]] | | [[우승진]] | ||
| 결석 | | 결석 | ||
|- | |- | ||
| Line 15: | Line 12: | ||
| 출석 | | 출석 | ||
|- | |- | ||
| | | 구동완 | ||
| 결석 | | 결석 | ||
|} | |} | ||
| Line 48: | Line 45: | ||
* 밥사달라고? 과제나 제대로 해오시지! | * 밥사달라고? 과제나 제대로 해오시지! | ||
= 과제 = | = 과제 = | ||
| Line 60: | Line 50: | ||
'''1. 퍼미테이션 계산기''' : 완성 | '''1. 퍼미테이션 계산기''' : 완성 | ||
05/12 수정. permitation의 핵심은? nPr=n*(n-1)P(r-1)! | |||
| Line 68: | Line 59: | ||
int permi(int a){ | int permi(int a, int b){ | ||
if( | if (b > 1){ | ||
return | return a*permi(a - 1, b - 1); | ||
} | } | ||
if ( | if (b = 1){ | ||
return | return a; | ||
} | } | ||
} | } | ||
| Line 89: | Line 81: | ||
} while (n < r); //n<r인지 판별함. | } while (n < r); //n<r인지 판별함. | ||
result = permi(n | result = permi(n, r); | ||
printf("값:%d", result); | printf("값:%d", result); | ||
| Line 96: | Line 88: | ||
} | } | ||
} | |||
* 이게 퍼미테이션인가요 펙토리알이지... main에서 permi함수는 한 번만 쓰세요 - [[유재범]] | |||
'''2. 지하철 노선도''' | '''2. 지하철 노선도''' | ||
15/05/12. FINISH | |||
#include <stdio.h> | #include <stdio.h> | ||
#include <stdlib.h> | |||
#include <string.h> | |||
#pragma warning (disable:4996) | #pragma warning (disable:4996) | ||
int | 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; // 환승여부 판단 | ||
char arrive | int depvar = 0, arrvar = 0, time = 0; // 사당으로부터의 거리 | ||
char departure[20]; | |||
char arrive[20]; | |||
printf("출발역과 도착역을 순서대로 입력하세요\n"); | 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시반]] | |||
Latest revision as of 00:45, 27 March 2026
참가자
| 강사 | 유재범 | |
| 새싹 | 우승진 | 결석 |
| 송준호 | 출석 | |
| 구동완 | 결석 |
수업 내용
- 포인터 배열
- 배열 포인터
- 함수 포인터
- 재귀 함수
- 배열 넘기기 확인
과제방
- Permitation (nPm)
- 1<n<20, 1<m<20
- Recursive(재귀 함수)
- 지하철 노선도
- 9호선, 4호선
- 9호선의 역간격 : 5분
- 4호선의 역간격 : 3분
- input : 출발역, 도착역
- output : 도착까지 걸린 시간, 경로(출발역, 환승역, 도착역)
- Bonus 1
- 지하철 노선도
- 9호선 급행열차도 구현
- 급행열차의 역간격 : 15분
- Bonus 2
- 지하철 노선도
- 모든 지하철 노선도
- 밥사달라고? 과제나 제대로 해오시지!
과제
송준호
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함수는 한 번만 쓰세요 - 유재범
2. 지하철 노선도
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)
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;
}