[C언어 기초]_23.03.10

‍전희주·2023년 3월 10일

if1.c

// if1.c

#include <stdio.h> 

// 제어문: 조건제어, 반복제어, 기타제어 
// 조건제어: if, switch 
// 반복제어: for, while, do-while 
// 기타제어: break, continue, goto 

int main()
{	// 변수 선언 
	int num;

	printf("input number ?"); 
	scanf("%d", &num); 

	// if문 2개 작성 -> 독립적인 두 개의 if문을 각각 실행 (조건이 참이면 값을 반환, 거짓이면 실행하지 않고 다음 행으로 넘어감) cf. if-else문으로 성능 개선 가능 

	if (num >= 0) // 참이면 하나의 명령을 실행, 참이 아니면 값을 반환하지 않고 다음 행으로 넘어감  
	{
		printf("%d, Positive, \n", num);
		printf("%d, \n", num * 3);
	}
	else  // 참이면 하나의 명령을 실행, 참이 아니면 값을 반환하지 않고 다음 행으로 넘어감  , 주의: if (num < 0); 조건문에는 세미콜론을 붙이지 않음 
	{
		printf("%d, Negative, \n", num);
		printf("%d, \n", num * 2);
	}
	printf("End. \n"); // 들여쓰기 무관 

	return 0; 
}

if2.c

//if2.c

#include <stdio.h>
#include <stdlib.h >

int main()
{
	int score; 

	do {
		printf("점수(0~100) ?");
		scanf("%d", &score);
	} while (score >= 100 || score < 0); // do-while 문은 입력된 값을 검사해야하는 상황에서 주로 사용 

	// exit(1); 프로그램 강제종료 함수 stlib.h 에 존재 
	/*
	if ((score >= 100) || (score < 0))
	{
		printf("점수는 0~100 범위를 입력하시오!!!")
		exit(1);
	}
	*/	

	if (score >= 90)
		printf("%d, A 학점 \n", score);
	else if (score >= 80)
		printf("%d, B 학점 \n", score);
	else if (score >= 70)
		printf("%d, C 학점 \n", score);
	else if (score >= 60)
		printf("%d, D 학점 \n", score);

	else
		printf("%d, 노력바람 !!! \n", score); 
	
	 
	printf("End. \n"); 

	return 0; 
}



if3.c

//if3.c

#include <stdio.h>

int main()
{
	// 변수 선언 
	int x, y, z, max; 

	printf("세 수를 입력하세요 ?"); 
	scanf_s("%d%d%d", &x, &y, &z);
	printf("x: % d, y : % d, z : % d \n", x, y, z); 

	//printf("max: %d \n", max); 

	/*if ((x > y) && (x > z))
	{
		printf("%d는 최댓값", x); 
	}*/

	
	if (x > y)
		if (x > z)
			max = x;
		else
			max = z;
	else if (y > z)
			max = y;
		else
			max = z; 

	printf("max : %d \n", max); 

	/*
	if ((x > y) && (x < z))
		max = x;
	else if (y > z)
		max = y;
		else
		max = z;
	printf("max : %d \n", max);
	*/

	max = (x > y ? x : y);
	max = (max > z ? max : z);
	printf("max : %d \n", max);
	//printf("%s\n", num1 == 10 ? "10입니다." : "10이 아닙니다."); 함수 안에 삼항 연산자 사용 
	return 0; 
}

if_EX.c

// if_EX.c 

#include <stdio.h>
 
int main()
{
    char ch; 
	float pound, kg;

	// 2. 데이터 입력 (p or k)
	

	// 3. 조건에 따른 실행과 출력 
	printf("p or k?");
	scanf("%c", &ch); 
	ch = getchar();
	if (ch == 'p')
	{
		printf("파운드 입력");
		scanf("%f", &pound);
		printf("%f는 %f 킬로그램이다.\n", pound, pound * 0.45359237);
	}
	else if (ch == 'k')
	{ 
		printf("파운드 입력");
	    scanf("%f", &kg);
	    printf("%f는 %3.f 파운드이다.\n", kg, kg / 0.45359237);
	}
	return 0; 
}




//#include <stdio.h>
//
//
//int main()
//{
//	char unit;
//	float pound, kg;
//
//	printf("P or K ? \n");
//	scanf_s("%c", &unit);
//	unit = toupper(unit);
//	printf("unit ? \n");
//
//	if (unit == 'P') {
//		scanf_s("%f", &pound);
//		kg = pound / 0.45359237;
//		printf("%f 파운드는 %f 킬로그램이다.", pound, kg);
//	}
//	else if (unit == 'K') {
//		scanf_s("%f", &kg);
//		pound = 0.45359237 * kg;
//		printf("%f 킬로그램은 %f 파운드이다.", kg, pound);
//	}
//	else
//		printf("멍청이");
//
//	return 0;
//}

for1.c

// for1.c
#include <stdio.h>

// for : 반복횟수를 알 때 주로 사용

int main()
{
	// i, j : 제어변수 (반복문)
	int i;

	// 초기화; 조건식; 증감식
	for (i = 1; i <= 10; i++)
		//printf("Hello World. \n", i);
		printf("%d, ", i);
	printf("\ni:%d \n", i);

	for (i = 10; i > 0; i--)
		printf("%d, ", i);
	printf("\ni:%d \n", i);

	for (i = 15; i <= 10; i++)		// 아무것도 출력되지 않음
		printf("%d, ", i);
	printf("\ni:%d \n", i);

	for (i = 1; i <= 10; i++);		// null 문장 -> for 조건 옆에 ;이 오면 안 됨 / 실행문이 없는 반복을 함 (next로 처리)
	printf("%d, ", i);
	printf("\ni:%d \n", i);

	i = 1;
	for (; i <= 10;);					// 초기화가 없으면 바로 조건으로 감	/ 증감식을 버리면 무한루프로 돌게 됨 
	printf("%d, ", i++);		// 이 부분에서도 증감 가능
	printf("\ni:%d \n", i);

	//for (;;) {		// 무한루프 -> 보통 for 문으로 쓰기 보단 while 문으로 씀 
	//	// 빠져나가는 부분 있어야 함
	//}

	for (int j = 1; j <= 10; j++)
		printf("%d, ", j);
	//printf("\ni:%d \n", j);			// 여기서의 j는 반복문 안에서의 j가 아니므로 사용 불가

	return 0;
}

for2.c

// for2.c
#include <stdio.h>

// 키보드로부터 1부터 정수(N)까지의 합을 구하려고 한다.
//1~N 까지 짝수의 합, 
//1~N 까지 홀수의 합을 구하시오

int main()
{
	// 1. 메모리 할당
	int i, num, evenSum = 0, oddSum = 0;

	// 2. 데이터 입력
	printf("num을 입력하세요 \n");
	scanf("%d", &num);

	// 3. 처리(합)
	for (i = 2; i <= num; i += 2) {		// 1~100 짝수의 합
		evenSum += i;
	}
	for (i = 1; i <= num; i += 2) {		// 1~100 홀수의 합
		oddSum += i;
	}

	//for (i = 1; i <= num; i++) {
	//	if (i % 2 == 0)
	//		evenSum += i;
	//	else
	//		oddSum += i;
	//}

	//for (i = 1; i <= num; i += 2) {
	//	oddSum += i;
	//	evenSum += (i + 1);
	//}

	// 4. 출력
	printf("evenSum : %d \n", evenSum);
	printf("oddSum : %d \n", oddSum);

	return 0;

}

for3.c

//for3.c

#include <stdio.h>

/*
키보드로부터 두 수를 입력받아, 
두 수 간의 누적 합을 구하는 프로그램을 작성하시오. 
*/

int main()
{
	//1. 메모리 할당
	int i, start, end, sum = 0, tmp; // 임시변수 tmp 

	//2. 데이터 입력
	printf("start ?\n");
	scanf("%d", &start); //100
	printf("end ?\n");
	scanf("%d", &end); //1

	if (start > end) // 데이터 교환 알고리즘 
	{
		tmp = start;
		start = end; 
		end = tmp; 
	}

	//3.처리(합)
	for (i = start; i <= end; i++) {
		sum += i; // 누적합 sum = sum + i 
	}
	//4.출력
	printf("%d 부터 %d 까지의 합: %d \n", start, end, sum); 

	return 0; 

}


calc.c

#include <stdio.h>
#include <ctype.h>

int main()
{
	int num1,num2;
	char op;

	printf("더하기(a), 빼기(s), 곱하게(m), 나누기(d) \n");
    printf("연산할 첫 문자를 입력하세요 ? ");  
	op=toupper(getchar());   // A[enter]
	getchar();
	printf("\n");

	printf("첫 번째 값 : ");
	scanf("%d",&num1);  //100

	printf("두 번째 값 : ");
	scanf("%d",&num2);    //30,  0 

	if (op == 'A')
		printf("%d + %d = %d \n", num1, num2, num1 + num2);
	else if (op == 'S')
		printf("%d - %d = %d \n", num1, num2, num1 - num2);
	else if (op == 'D')
	{
		if (num2 != 0)
			printf("%d / %d = %d \n", num1, num2, num1 / num2);
		/*else
			printf("0으로 나눌 수 없어요!!! \n");*/
	}
	else if (op == 'M')
		printf("%d * %d = %d \n", num1, num2, num1*num2);
	else
		printf("연산문자 오류!! \n");

	printf("End. \n");

	return 0 ;
}

switch1.c

//switch1.c
#include <stdio.h>

int main()
{
	int score;

	printf("점수 ?");
	scanf("%d", &score);

	// exit(1); 프로그램 강제종료 함수 stlib.h 에 존재 
	if ((score >= 100) || (score < 0))
	{
		printf("점수는 0~100 범위를 입력하시오!!!");
			exit(1);
	}


	switch (score / 10) // (정수형 조건식) 
	{
	case 10:
	case 9:
		printf("%d, A 학점 \n", score);
		break;
	case 8:
		printf("%d, B 학점 \n", score);
		break;
	case 7: 
		printf("%d, C 학점 \n", score);
		break; 
	case 6:
		printf("%d, D 학점 \n", score);
		break;
	default:
		printf("%d, 노력바람 !!! \n", score);
	    break; 
	}

	printf("End. \n");

	return 0; 
}

switch2.c

// switch2.c
#include <stdio.h>

int main()
{
	char ans;

	printf("1. 사원정보 입력 \n");
	printf("2. 사원정보 출력 \n");
	printf("3. 사원정보 검색 \n");
	printf("4. 사원정보 종료 \n");
	printf("Select ? (1~4)  \n");
	scanf("%c", &ans);		// 1, 2, 3, 4, 7

	switch (ans)
	{
	case '1':
		emp_input();
		break;

	case '2':
		emp_output();
		break;

	case '3':
		emp_find();
		break;

	case '4':
		break;
	}

	printf("End. \n");

	return 0;
}	// main() end

emp_input() {
	printf("emp_input() called. \n");
}

emp_output() {
	printf("emp_output() called. \n");
}

emp_find() {
	printf("emp_find() called. \n");
}

while1.c

//while1.c

#include <stdio.h>

// while: 반복횟수를 모를 때 주로 사용 

int main()
{
	char ch; 

	ch = 'a';  // a는 아스키코드 97 
	while (ch <= 'Z') // 참이면 반복 
	{
		printf("%c ", ch);
		ch++; // ch++: break 문 역할 수행, 없으면 무한루프('A' 반환) 수행 
	}
	printf("\n"); 

	/*ch = 1;
	while (ch <= 10)
	{
		printf("%d", ch);
			ch++;
	}
	*/
	

	ch = 'a';
	do {
		printf("%c ", ch);
		ch++; // ch++: break 문 역할 수행, 없으면 무한루프('A' 반환) 수행 
	} while (ch <= 'Z'); // while 절 내 조건 참이면 반복 -> do 절 수행 / do-while문은 적어도 1번 반복 수행 cf. while/for 문 / do-while문은 ; 기재 필 
	printf("\n");

	return 0; 

}
profile
heejoojeon@daou.co.kr

0개의 댓글