최솟값 업데이트 // 2. 더 큰애가 나오면 => 최댓값 업데이트 /* 1. 입력 // Case#1 : 10, 20, 30 int caseNum, data"> 최솟값 업데이트 // 2. 더 큰애가 나오면 => 최댓값 업데이트 /* 1. 입력 // Case#1 : 10, 20, 30 int caseNum, data"> 최솟값 업데이트 // 2. 더 큰애가 나오면 => 최댓값 업데이트 /* 1. 입력 // Case#1 : 10, 20, 30 int caseNum, data">
#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//
//int main()
//{
//	int testCase;
//	scanf("%d", &testCase);
//
//	for (int i = 0; i < testCase; i++)
//	{
//		int studentCount = 0;
//		scanf("%d", &studentCount);
//
//		int scoreAdd = 0;
//		int scoreArr[1000] = { 0 };
//
//		for (int j = 0; j < studentCount; j++)
//		{
//			scanf("%d", &scoreArr[j]);
//			scoreAdd += scoreArr[j];
//		}
//		float avg = (float)scoreAdd / studentCount;
//		int overAvgCount = 0;
//
//		for (int j = 0; j < studentCount; j++)
//		{
//			if (avg < scoreArr[j])
//			{
//				overAvgCount++;
//			}
//		}
//		float result = (float)overAvgCount / studentCount * 100;
//		printf("%.3f%%\\n", result);
//	}
//	return 0;

// 최소값은 다른 모든 수보다 작다
// 최댓값은 다른 모든 수보다 크다.

// 최대값, 최소값
// [][][][][]
// 각 원소를 후보(얘가 최솟값 / 최댓값이라는 가정)로 등록
// 다른 모든 원소와 비교해보면서 가정이 참인지 확인

// 첫 번째 원소를 후보로 등록
// 두 번째 원소부터 마지막 원소까지 비교하면서
// 1. 더 작은 애가 나오면 => 최솟값 업데이트
// 2. 더 큰애가 나오면 => 최댓값 업데이트

/*

1. 입력
// Case#1 : 10, 20, 30
int caseNum, data1, data2, data3;
scanf("Case#%d" : %d %d %d, &caseNum, &data1, &data2, &data3);
2. 출력
// Case 1# ? 10 - 20 - 30
printf("Case %d# ? %d - %d - %d", caseNum, data1, data2, data3);
3. 연산
// 할당

// 증감 -> 평가 결과가 다르다ㅏ
++a; // 1이 증가된 a의 데이터
a++; // 증가가 되지 않은 이전의 a 데이터

int a = 0x24;
// 0010 0100

a * 2;

a << 1; => 빠른 곱셈
// 0100 1000

a / 2^2
a >> 2; => 빠른 나누기
// 0001 0010

signed char ch = -1;
// 0000 0001 -> NOT 연산 -> 1111 1110 -> 1111 1111

// 1111 1111

ch >> 2; (부호비트가 복사된다)
// 1111 1111
ch << 2; 라면
// 1111 1100

// 0011 1111
ch >> 1;
// 0001 1111

// 0011 1111
ch << 1;
// 0111 1110

// 0000 0001 +
// 0000 0000

d2 코딩체 - 코딩체 다운로드

함수 찍먹 return-type identifier (parameter - list) {


return;
}

//Caller : 함수를 호출한 사람 (main)
//Callee : 호출된 함수 (Add)
Add() 식별자가 앞에 뜨면 함수를 호출한다. (호출연산자)

  //Argument (인자)

Parameter can be initialized by an argument
Procedure를 이용해서 프로그램을 만드는 것

int re = Add(1, 2)
int re2 = Add(2, 3)
int re3 = Add(4, 5)

parameter : 매개변수

// 함수 : 일련의 과정에 이름을 붙인 것
// 왜 이름을 붙였을까?
// 재사용하려고.

// 두 수를 입력 받아 그 결과값을 출력하는 함수를 만들기로 했다.
int Add(int a, int b) -> 입력받을 데이터
{
int result = a + b;

return reult; -> 결과값을 돌려줄 것 이므로.
}

null문자로 끝나는 것 : 널 문자 종료 형

char str[] = "Hello world";
char str2[12] = "Hello World";

str2 = "World"; // X

strcpy(str2, "World");
str[x]에서 x의 크기가 충분해야 한다.

#define _CRT_SECURE_NO_WARNINGS
#inclde <string.h>
#include <stdio.h>

int main(void)
{
if (0 == strcmp("Hello", "Hello")) ( if (strcmp("Hell", "Hello") < 0 )
 {
    puts("두 문자열은 같습니다.");  ("Hell이 빠릅니다.")
 }

 return 0;

}
#define _CRT_SECURE_NO_WARNINGS
//#include <stdio.h>
//
//int main()
//{
//	int testCase;
//	scanf("%d", &testCase);
//
//	for (int i = 0; i < testCase; i++)
//	{
//		int studentCount = 0;
//		scanf("%d", &studentCount);
//
//		int scoreAdd = 0;
//		int scoreArr[1000] = { 0 };
//
//		for (int j = 0; j < studentCount; j++)
//		{
//			scanf("%d", &scoreArr[j]);
//			scoreAdd += scoreArr[j];
//		}
//		float avg = (float)scoreAdd / studentCount;
//		int overAvgCount = 0;
//
//		for (int j = 0; j < studentCount; j++)
//		{
//			if (avg < scoreArr[j])
//			{
//				overAvgCount++;
//			}
//		}
//		float result = (float)overAvgCount / studentCount * 100;
//		printf("%.3f%%\\n", result);
//	}
//	return 0;

// 최소값은 다른 모든 수보다 작다
// 최댓값은 다른 모든 수보다 크다.

// 최대값, 최소값
// [][][][][]
// 각 원소를 후보(얘가 최솟값 / 최댓값이라는 가정)로 등록
// 다른 모든 원소와 비교해보면서 가정이 참인지 확인

// 첫 번째 원소를 후보로 등록
// 두 번째 원소부터 마지막 원소까지 비교하면서
// 1. 더 작은 애가 나오면 => 최솟값 업데이트
// 2. 더 큰애가 나오면 => 최댓값 업데이트

/*

  1. 입력 // Case#1 : 10, 20, 30 int caseNum, data1, data2, data3; scanf("Case#%d" : %d %d %d, &caseNum, &data1, &data2, &data3);
  2. 출력 // Case 1# ? 10 - 20 - 30 printf("Case %d# ? %d - %d - %d", caseNum, data1, data2, data3);
  3. 연산 // 할당

// 증감 -> 평가 결과가 다르다ㅏ ++a; // 1이 증가된 a의 데이터 a++; // 증가가 되지 않은 이전의 a 데이터

  1. 분기문
  1. 반복문
  1. 배열

int a = 0x24; // 0010 0100

a * 2;

a << 1; => 빠른 곱셈 // 0100 1000

a / 2^2 a >> 2; => 빠른 나누기 // 0001 0010

signed char ch = -1; // 0000 0001 -> NOT 연산 -> 1111 1110 -> 1111 1111

// 1111 1111

ch >> 2; (부호비트가 복사된다) // 1111 1111 ch << 2; 라면 // 1111 1100

// 0011 1111 ch >> 1; // 0001 1111

// 0011 1111 ch << 1; // 0111 1110

// 0000 0001 + // 0000 0000

//함수 : 일련의 코드에 이름을 붙인 것 //API // Application Programmming Interface -> 함수 하나를 일컫는 단어

// Standard : 플랫폼에 독립적이다.

// Library : 유용한 API의 모음