U E D R , A S I H C RSS

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

참가자

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

수업 내용

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

과제방

  • Permitation (nPm)
    • 1
    • 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;

}

질문 및 방명록


  • 과제에서 익숙한게 보이는데? 급행열차는 직접 추가한듯 하지만ㅋㅋㅋㅋ - 장우진



Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:57
Processing time 0.0251 sec