Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

새싹교실/2015/수업시작은5시반/0508: Difference between revisions

From ZeroWiki
imported>computer6561
No edit summary
imported>ssjh95
No edit summary
Line 53: Line 53:
------------------
------------------
[[새싹교실/2015/수업시작은5시반]]
[[새싹교실/2015/수업시작은5시반]]
= 과제 =
== 송준호 ==
'''1. 퍼미테이션 계산기'''
#include <stdio.h>
#pragma warning(disable:4996)
int permi(int a){
if(a > 0){
return (a*permi(a - 1));
}
if (a == 0){
return 1;
}
}
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) / permi(n - r);
printf("값:%d", result);
return 0;
}
'''2. 지하철 노선도'''
지하철 역명과 숫자를 일대일 대응시키는 방법을 찾지 못했음.
현재 미완성된 코드:
#include <stdio.h>
#pragma warning (disable:4996)
int main(){
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];
for (int b = 0; b < 26; b++){
four_down[b] = b * (-5);
}
/* char departure[20];
char arrive[20];
printf("출발역과 도착역을 순서대로 입력하세요\n");
scanf("%s %s", departure, arrive);
// 앞에 사당 꼭 추가하기!
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천줄 정도의 코드로 구현 가능할 거 같습니다만.



Revision as of 15:21, 9 May 2015

참가자

강사 유재범
새싹 우승진 결석
서재훈 결석
송준호 출석
구동완 출석

수업 내용

  • 포인터 배열
  • 배열 포인터
  • 함수 포인터
  • 재귀 함수
  • 배열 넘기기 확인

과제방

  • Permitation (nPm)
    • 1<n<20, 1<m<20
    • Recursive(재귀 함수)
  • 지하철 노선도
    • 9호선, 4호선
    • 9호선의 차간격 : 5분
    • 4호선의 차간격 : 3분
  • input : 출발역, 도착역
  • output : 도착까지 걸린 시간, 경로(출발역, 환승역, 도착역)
  • Bonus 1
    • 지하철 노선도
    • 9호선 급행열차도 구현
    • 급행열차의 차간격 : 15분
  • Bonus 2
    • 지하철 노선도
    • 모든 지하철 노선도
  • 밥사달라고? 과제나 제대로 해오시지!

질문 및 방명록


새싹교실/2015/수업시작은5시반


과제

송준호

1. 퍼미테이션 계산기



#include <stdio.h>
#pragma warning(disable:4996)


int permi(int a){
	if(a > 0){
		return (a*permi(a - 1));
	}
	if (a == 0){
		return 1;
	}
}

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) / permi(n - r);
	printf("값:%d", result);

	return 0;


}


2. 지하철 노선도

지하철 역명과 숫자를 일대일 대응시키는 방법을 찾지 못했음.

현재 미완성된 코드:


#include <stdio.h>
#pragma warning (disable:4996)

int main(){

	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];
	for (int b = 0; b < 26; b++){
		four_down[b] = b * (-5);
	}

	/* char departure[20];
	char arrive[20];
	printf("출발역과 도착역을 순서대로 입력하세요\n");
	scanf("%s %s", departure, arrive); 

	// 앞에 사당 꼭 추가하기!
	
	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천줄 정도의 코드로 구현 가능할 거 같습니다만.