C 언어 프로그래밊 과제 풀이

Similar documents
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

중간고사

untitled

untitled

untitled

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

Microsoft PowerPoint - Chapter8.pptx

歯9장.PDF

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - Chapter_05.pptx

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

Microsoft PowerPoint - [2009] 02.pptx

untitled

OCW_C언어 기초

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Infinity(∞) Strategy

Microsoft PowerPoint - chap05-제어문.pptx

본 강의에 들어가기 전

쉽게 풀어쓴 C 프로그래밍

Chapter_06

Microsoft PowerPoint - chap12-고급기능.pptx

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.


슬라이드 1

슬라이드 1

Microsoft PowerPoint - chap-07.pptx

Microsoft PowerPoint - ch01.ppt

Microsoft PowerPoint - Lesson6.pptx

Microsoft PowerPoint - Java7.pptx

C 프로그래밊 개요

Microsoft PowerPoint - gnu-w10-c-chap11

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

슬라이드 1

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint Presentation

Microsoft PowerPoint - chap11-포인터의활용.pptx

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

PowerPoint 프레젠테이션

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap-06.pptx

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

PowerPoint 프레젠테이션

5-03-Â÷¼¼´ëÀ¥Iš

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-1Array.ppt

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - chap-03.pptx

윈도우즈프로그래밍(1)

OCW_C언어 기초

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - Lesson2.pptx

PowerPoint 프레젠테이션

컴파일러

ch15


Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

<4D F736F F F696E74202D20C1A63134C0E520C6F7C0CEC5CD5FC8B0BFEB>

Microsoft PowerPoint - Chapter_08.pptx

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Microsoft PowerPoint - 제11장 포인터(강의)

13주-14주proc.PDF

Microsoft PowerPoint - 제11장 포인터

쉽게 풀어쓴 C 프로그래밍

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

<4D F736F F F696E74202D20C1A639C0E520C7D4BCF6BFCDBAAFBCF6>

03장.스택.key

쉽게 풀어쓴 C 프로그래밍

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-11.pptx


Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

쉽게 풀어쓴 C 프로그래밍

chap8.PDF

Infinity(∞) Strategy

Microsoft PowerPoint - 7장 배열 pptx

chap10.PDF

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

C 프로그램의 기본

PART

Part Part

£01¦4Àå-2

½ºÅ丮ÅÚ¸µ3_³»Áö

272*406OSAKAÃÖÁ¾-¼öÁ¤b64ٽÚ

02장.배열과 클래스

14 주차구조체와공용체

PowerPoint 프레젠테이션

Transcription:

과제풀이 (1)

홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 <stdio.h> 가필요한이유 printf 와 scanf 쌍 if-else 와 if-if 개선점 if (number % 2) printf ("%d 는홀수입니다.\n", number); else printf ("%d 는짝수입니다.\n", number);

홀수 / 짝수판정 (2) int number; printf(" 정수를입력하시오 => "); if ( scanf("%d", &number) == 1) scanf() 결과확인 if (number % 2) printf ("%d 는홀수입니다.\n", number); else printf ("%d 는짝수입니다.\n", number); return(0); else printf(" 잘못된입력입니다.\n"); return (-1);

for 문 /***********************************************************************************/ /* 20094123 홍길동 20100324 */ /* loop.c */ /* for문을이용하여 1부터 100까지의합을구하는프로그램 */ /***********************************************************************************/ int i; int sum = 0; 변수초기화 for (i = 1; i < 101; i++) sum += i; /* sum = sum + i */ 두문장의차이점 printf("1 부터 100 까지합은 %d 입니다.\n", sum);

2 차방정식 Ver. 1 (1) /*****************************************************************************/ /* 2 차방정식 */ /*****************************************************************************/ #include <math.h> double 과 float double a, b, c; /* a x^2 + b x + c = 0 */ double dist; /* b^2-4 a c */ double root1, root2; /* real roots */ double real_part; /* real part*/ double complex_part; /* complex part*/ math lib gcc lm printf("\n2 차방정식의근을구하는프로그램 \n\n"); printf("enter 3 real numbers : "); %lf if (scanf("%lf %lf %lf", &a, &b, &c) == 3) if (a == 0. && b == 0. && c == 0.) printf("\n 부정 : 해가무수히많다.\n"); else if (a == 0. && b == 0.) printf("\n 불능 \n"); else if (a == 0.) printf("\n1 차방정식 \n"); root1 = c / -b; printf("\n 근 : %g\n", root1);

2 차방정식 Ver. 1 (2) else printf("\n2 차방정식 \n"); dist = b * b - 4 * a * c; if (dist > 0) return 0; /* 정상적입력 */ else printf("\n 잘못된입력입니다.\n"); return -1; root1 = (-b + sqrt(dist))/(2. * a); root2 = (-b - sqrt(dist))/(2. * a); printf("\n2 개의실근 : %g, %g\n", root1, root2); else if (dist == 0) root1 = -b / (2. * a); printf("\n 중근 : %g\n", root1); else real_part = -b / (2. * a); complex_part = sqrt(-dist) / (2. * a); printf("\n2 개의허근 : %g + %gi, %g - %gi\n", real_part, complex_part, real_part, complex_part);

2 차방정식 Ver. 2 (1) /*****************************************************************************/ /* 2 차방정식 */ /*****************************************************************************/ #include <math.h> double a, b, c; /* a x^2 + b x + c = 0 */ printf("\n2 차방정식의근을구하는프로그램 \n\n"); printf("enter 3 real numbers : "); if (scanf("%lf %lf %lf", &a, &b, &c) == 3) if (a == 0. && b == 0. && c == 0.) printf("\n 부정 : 해가무수히많다.\n"); else if (a == 0. && b == 0.) printf("\n 불능 \n"); else if (a == 0.) double result; printf("\n1 차방정식 \n"); result = c / -b; printf("\n 근 : %g\n", result);

2 차방정식 Ver. 2 (2) else double dist; /* b^2-4 a c */ printf("\n2 차방정식 \n"); dist = b * b - 4 * a * c; if (dist > 0) double root1, root2; /* real roots */ root1 = (-b + sqrt(dist))/(2. * a); root2 = (-b - sqrt(dist))/(2. * a); printf("\n2개의실근 : %g, %g\n", root1, root2); else if (dist == 0) double root; /* real root */ else root = -b / (2. * a); printf("\n 중근 : %g\n", root); double real_part; /* real part*/ double complex_part; /* complex part*/ real_part = -b / (2. * a); complex_part = sqrt(-dist) / (2. * a); printf("\n2 개의허근 : %g + %gi, %g - %gi\n", real_part, complex_part, real_part, complex_part);

2 차방정식 Ver. 2 (3) return 0; /* 정상적입력 */ else printf("\n 잘못된입력입니다.\n"); return -1;

2 차방정식 Ver. 3 if (a!= 0.) double D = b * b - 4 * a * c; if (D > 0.) else if (D == 0.) else /* D < 0 */ else if (b!= 0.) else if (c!= 0.) else /* c == 0. */

add_2_no Ver. 1 /***********************************************************************/ /* 20094123 홍길동 */ /* add_2_no ver.1 */ /* 별도의함수없이 main에서처리 */ /***********************************************************************/ int num1, num2; int start, end; int sum = 0; int i; for (i = start; i <= end; i++) sum += i; printf("%d 에서 %d 까지사이에있는정수들의합은 %d 입니다.\n", start, end, sum); return 0; else printf(" 잘못된입력입니다.\n"); return -1; printf(" 두개의정수를입력하세요. => "); if (scanf("%d %d", &num1, &num2) == 2) if (num1 > num2) start = num2; end = num1; else start = num1; end = num2;

add_2_no Ver. 2 /* 20094123 홍길동 */ /* add_2_no ver.2 */ /* add_2_no() 와테스트목적의 main() */ int add_2_no(int no1, int no2); printf ("2 와 5 사이의수들의합은 %d 입니다.\n", add_2_no(2, 5)); int add_2_no(int no1, int no2) int start, end; int sum = 0; int i; if (no1 > no2) start = no2; end = no1; else start = no1; end = no2; for (i = start; i <= end; i++) sum += i; return sum;

add_2_no Ver. 3 /***********************************************************************************/ /* 20094123 홍길동 */ /* add_2_no ver.3 */ /* add_2_no() 와사용자로부터 2 개의수를입력받아함수를부르는 main()*/ /***********************************************************************************/ int add_2_no(int no1, int no2); /***********************************************************************************/ int num1, num2; int result; printf(" 두개의정수를입력하시오. => "); if (scanf("%d %d", &num1, &num2) == 2) result = add_2_no(num1, num2); printf ("%d 와 %d 사이의수들의합은 %d 입니다.\n", num1, num2, result); return 0; else printf(" 잘못된입력입니다.\n"); int add_2_no(int no1, int no2) int start, end; int sum = 0; int i; if (no1 > no2) start = no2; end = no1; else start = no1; end = no2; for (i = start; i <= end; i++) sum += i; return sum; return -1;

add_2_no Ver. 4 (1) /* 20094123 홍길동 */ /* add_2_no ver.4 */ /* add_2_no() : 두수사이의정수들의합 */ /* read_2_no() : 두수를사용자로부터읽어들이는함수 */ /* print_res() : 두수와두수사이에있는합들을출력하는함수 */ /* main() : 각함수를차례대로호출 */ int num1, num2; int result; if (read_2_no(&num1, &num2)) result = add_2_no(num1, num2); print_res(num1, num2, result); return 0; int read_2_no (int *p1, int *p2); int add_2_no(int no1, int no2); void print_res(int no1, int no2, int no3); return -1;

add_2_no Ver. 4 (2) int read_2_no(int *p1, int *p2) printf(" 두개의정수를입력하시오. => "); if (scanf("%d %d", p1, p2) == 2) return 1; else printf(" 잘못된입력입니다.\n"); return 0; void print_res(int no1, int no2, int no3) printf ("%d 와 %d 사이에있는수들의합은 %d 입니다.\n", no1, no2, no3); int add_2_no(int no1, int no2) int start, end; int sum = 0; int i; if (no1 > no2) start = no2; end = no1; else start = no1; end = no2; for (i = start; i <= end; i++) sum += i; return sum;

add_2_no Ver. 5 (1) add_2_no.h int read_2_no (int *p1, int *p2); int add_2_no(int no1, int no2); void print_res(int no1, int no2, int no3); main.c /* 20094123 홍길동 */ /* add_2_no ver.5 */ /* add_2_no() : 두수사이의정수들의합 */ /* read_2_no() : 두수를사용자로부터읽어들이는함수 */ /* print_res() : 두수와두수사이에있는합들을출력하는함수 */ /* main() : 각함수를차례대로호출 */ #include "add_2_no.h" int num1, num2; int result; if (read_2_no(&num1, &num2)) result = add_2_no(num1, num2); print_res(num1, num2, result); return 0; return -1;

add_2_no Ver. 5 (2) read_2_no.c /****************************************************************/ /* 20094123 홍길동 */ /* add_2_no ver.5 */ /* read_2_no() : 두수를사용자로부터읽어들이는함수 */ /*****************************************************************/ int read_2_no(int *p1, int *p2) printf(" 두개의정수를입력하시오. => "); if (scanf("%d %d", p1, p2) == 2) return 1; else printf(" 잘못된입력입니다.\n"); return 0; print_res.c /*************************************************************************/ /* 20094123 홍길동 */ /* add_2_no ver.5 */ /* print_res() : 두수와두수사이에있는합들을출력하는함수 */ /*************************************************************************/ void print_res(int no1, int no2, int no3) printf ("%d 와 %d 사이에있는수들의합은 %d 입니다.\n", no1, no2, no3);

add_2_no Ver. 5 (3) add_2_no.c /* 20094123 홍길동 */ /* add_2_no ver.5 */ /* add_2_no() : 두수사이의정수들의합 */ int add_2_no(int no1, int no2) int start, end; int sum = 0; int i; if (no1 > no2) start = no2; end = no1; else start = no1; end = no2; for (i = start; i <= end; i++) sum += i; return sum;