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

새싹교실/2016/고등어자반/0331: Difference between revisions

From ZeroWiki
imported>kye0226
No edit summary
(Quality repair v1)
 
(10 intermediate revisions by 4 users not shown)
Line 9: Line 9:
|-
|-
| 튜티
| 튜티
| [[김영은]]
| 김영은
| 참석
| 참석
|-
|-
Line 27: Line 27:


=== 김영은 ===
=== 김영은 ===
 
#include <stdio.h>
int main()
{
int n;
while (1)//무한반복
{
printf("몇 factorial의 값을 구하시겠습니까?\n");
scanf("%d", &n);
if (n == -1)
break;
else if (n < -1)
continue;
else
printf("%d! = %d\n", n, factorial(n));
}
}
int factorial(int n)//int main과 다른 함수
{
if (n == 0)
return 1;
else
return n*factorial(n - 1);
}
=== 김상렬 ===
=== 김상렬 ===


#include<stdio.h>
#pragma warning(disable:4996)
int main(void) {
int n, result;
while (1) {
printf("몇 factorial 값 n please : ");
scanf("%d", &n);
if (n == -1) {
break;
}
else if (n < -1) {
continue;
}
else {
result = fact(n);
printf("%d\n", result);
}
}
}
int fact(int n) {
if (n == 0 ){
return 1;
}
else {
return n * fact(n - 1);
}
}
=== 최다인 ===
=== 최다인 ===
  #include <stdio.h>
  #include <stdio.h>
Line 65: Line 129:
=== 김영은 ===
=== 김영은 ===
  #include <stdio.h>
  #include <stdio.h>
  int main()
// 밑에서 선언할 때 프로토타입 사용
{
void hanoi(int n, char src, char dest, char aux);
  int main() {
  int n;
  int n;
  while (1)//무한반복
  char src = 'A', dest = 'B', aux = 'C';
scanf("%d", &n);
hanoi(n, src, dest, aux);
return 0;
}
void hanoi(int n, char src, char dest, char aux) {
//return값이 필요없을 때 void 사용
if (n == 1)
  {
  {
  printf("몇 factorial의 값을 구하시겠습니까?\n");
  printf("%c에서 %c로 원반이동\n", src, dest);
scanf("%d", &n);
  return;
if (n == -1)
break;
  else if (n < -1)
continue;
else
printf("%d! = %d\n", n, factorial(n));
  }
  }
hanoi(n - 1, src, aux, dest);
hanoi(1, src, dest, aux);
hanoi(n - 1, aux, dest, src);
   
   
}
int factorial(int n)//int main과 다른 함수
{
if (n == 0)
return 1;
else
return n*factorial(n - 1);
  }
  }
=== 김상렬 ===
=== 김상렬 ===


=== 최다인 ===
#include<stdio.h>
int hanoi(int n, int In, int Fin)
{
    static int count = 0;
    int Mid = 6-In-Fin;
    if(n==1){
        printf("%d --> %d\n", In, Fin);
        count+=1;
    }
    else{
        hanoi(n-1,In, Mid);
        hanoi(1, In, Fin);
        hanoi(n-1, Mid, Fin);
    }
    return count;
}
int main(void){
    int disk, fcount;//
    printf("원판수 입력: ");
    scanf("%d", &disk);
    fcount = hanoi(disk, 1,3);
    printf("총 이동 수는  : %d\n", fcount);
    return 0;
}
//helped by zeropage


= 후기 =
= 후기 =
Line 98: Line 189:
-----
-----
[[새싹교실/2016/고등어자반|고등어자반]]
[[새싹교실/2016/고등어자반|고등어자반]]

Latest revision as of 04:58, 27 March 2026

진행사항

  • 참여자
튜터 최다인 참석
튜티 김영은 참석
김상렬 참석
  • 제어문 복습
  • 함수
    • 함수의 사용법
    • 함수 prototype
    • 지역변수, 전역변수
    • 재귀함수

실습

  • 값을 입력받아 해당 값의 factorial을 구하는 프로그램을 작성

김영은

#include <stdio.h>
int main()
{
	int n;
	while (1)//무한반복
	{
		printf("몇 factorial의 값을 구하시겠습니까?\n");
		scanf("%d", &n);

		if (n == -1)
			break;
		else if (n < -1)
			continue;
		else
			printf("%d! = %d\n", n, factorial(n));
	}

	
}
int factorial(int n)//int main과 다른 함수
{	
		if (n == 0)
			return 1;
		else
			return n*factorial(n - 1);
}

김상렬

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



int main(void) {
	int n, result;
	while (1) {
		printf("몇 factorial 값 n please : ");
		scanf("%d", &n);

		if (n == -1) {
			break;
		}
		else if (n < -1) {
			continue;
		}
		else {
			result = fact(n);
			printf("%d\n", result);
		}

	}
	

}



int fact(int n) {
	if (n == 0 ){

		return 1;
	}
	else {
		return n * fact(n - 1);
	}
	
}

최다인

#include <stdio.h>

int fact (int n);

int main () {
	int n;

	while (1) {
		printf("몇 factorial의 값을 구하시겠습니까? : ");
		scanf("%d", &n);

		if (n == -1) { break; }
		else if (n < -1) {
			printf("잘못된 입력값입니다. 양수를 입력해주세요.\n");
			continue;
		}
		else {
			printf("%d! : %d\n", n, fact(n));
		}
	}

	return 0;
}

int fact (int n) {
	if (n == 0) { return 1; }
	else { return n * fact(n - 1); }
}

과제

  • 하노이의 탑

김영은

#include <stdio.h>
// 밑에서 선언할 때 프로토타입 사용
void hanoi(int n, char src, char dest, char aux);

int main() {
	int n;
	char src = 'A', dest = 'B', aux = 'C';
	
	scanf("%d", &n);

	hanoi(n, src, dest, aux);

	return 0;
}

void hanoi(int n, char src, char dest, char aux) {
	//return값이 필요없을 때 void 사용 
	if (n == 1)
	{
		printf("%c에서 %c로 원반이동\n", src, dest);
		return;
	}
	hanoi(n - 1, src, aux, dest);
	hanoi(1, src, dest, aux);
	hanoi(n - 1, aux, dest, src);

}
		

김상렬

#include<stdio.h>

int hanoi(int n, int In, int Fin)
{
    static int count = 0;
    int Mid = 6-In-Fin;
    if(n==1){
        printf("%d --> %d\n", In, Fin);
        count+=1;
    }
    else{
        hanoi(n-1,In, Mid);
        hanoi(1, In, Fin);
        hanoi(n-1, Mid, Fin);
    }
    return count;
}
int main(void){
    int disk, fcount;//
    printf("원판수 입력: ");
    scanf("%d", &disk);
    fcount = hanoi(disk, 1,3);
    printf("총 이동 수는  : %d\n", fcount);
    return 0;
}
//helped by zeropage

후기


고등어자반