#define _CRT_SECURE_NO_WARNINGS #include // 구조체를 사용하여 이름과 나이를 입력받아 출력하는 프로그램 typedef struct data { char name[20]; int age; int stunum; }Student; int main() { Student me; printf("이름 입력 : "); scanf("%s", me.name); printf("나이 입력 : "); scanf("%d", &me.age); printf("학번 입력 : "); scanf("%d", &me.stunum); //출력하는 코드를 작성해보세요. printf("제 이름은 %s, 나이는 %d, 학번은 %d입니다.\n", me.name, me.age, me.stunum); return 0; ..
#define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { int cnt = 0; int randNum; int isSame; int input[7] = { 0, }; int lottery[7] = { 0, }; int randomArray[51] = { 0, }; srand(time(NULL)); printf("로또 7개의 숫자를 입력하세요(1~50 중복입력불가) : "); for (int i = 0; i < 7; i++) scanf("%d", &input[i]); for (int i = 0; i < 7; i++) { randNum = rand() % 50 + 1; if(randomArray[randNum]) { i--; continue; }..
자바 소스 코드를 실행하는 과정에서 컴파일러는 자바 소스코드를 이용해 클래스 파일을 생성한다. 그런데 C와 같은 언어에서는 최종으로 exe 파일을 생성한다. ( 이 exe 파일은 단순히 더블클릭으로 실행시키기만 하면 작동된다. ) 자바에서는 왜 실행하기도 어려운 클래스 파일을 만드는 걸까? 먼저, C와 C++같은 언어에서는 컴파일된 실행 파일을 모든 운영체제에서 동일하게 사용 불가능하다. 윈도우에서 컴파일한 실행 파일을 리눅스에서 사용할 수 없다는 이야기다. 하지만 자바에서는 JVM이라는 중간단계 역할을 수행하는 것이 있기 때문에, 한번 작성해 컴파일한 파일은 어떤 운영체제에서든 사용 가능하다. ( 자바는 JVM으로 이러한 장점이 생겼지만, 반대로 C와 같은 언어에서는 없는 중간 단계가 자바에는 있어..
#include #include struct Point { int x, y; }; int main(void) { struct Point p; p.x = 1; p.y = 2; struct Point p1; p1.x = 3; p1.y = 4; double a, b, c; a = p1.x - p.x; b = p1.y - p.y; c = sqrt(a * a + b * b); printf("%.2f\n", c); return 0; } a = x좌표 거리의 차이 b = y좌표 거리의 차이 c의 제곱 = a의 제곱 + b의 제곱 c = 루트(a의 제곱 + b의 제곱)
#define _CRT_SECURE_NO_WARNINGS #include int isPrime(int n) // 소수인지 아닌지 알려주는 함수 { for (int i = 2; i * i = 1000) { printf("\n"); continue; } int primeCnt = 1; for (int i = 2; i
#include #pragma warning (disable : 4996) int main() { int arr[100][100] = { 0 }; int a, b; int value = 1; int k = 0; scanf("%d %d", &a, &b); while (1) { for (int i = 0; i < b; i++) { for (int j = 0; j < a; j++) { if (i + j == k) arr[j][i] = value++; } } k++; if (value - 1 == a * b) { break; } } for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { printf("%3d", arr[i][j]); } printf("\n");..
우리는 함수를 접하기 시작하면서 매개변수와 인수라는 단어들을 많이 들어오고, 많이 사용해왔다. 그럼 매개변수와 인수의 정확한 차이는 뭘까? 매개변수는 함수 밖에서 전달된 값이 저장되는 변수이다. int add(int a, int b) { return a + b; } 위 코드에서 int a와 int b의 a,b가 매개변수이다. 인수는 함수를 호출할 때 괄호 안에 써서 전달하는 값이나 변수를 말하는 것이다. add(5, 3); 이 코드에서 괄호 안에 있는 5와 3이 인수이다.
#include void swap1(int, int); // call by value void swap2(int*, int*); // call by reference int main(void) { int a = 5, b = 8; printf("a = %d, b = %d\n", a, b); swap1(a, b); // 값에 의한 호출 printf("a = %d, b = %d\n", a, b); swap2(&a, &b); // 참조에 의한 호출 printf("a = %d, b = %d\n", a, b); return 0; } void swap1(int a, int b) { int temp = a; a = b; b = temp; } void swap2(int* a, int* b) { int temp = *a;..
선택 정렬은 아래 그림처럼 맨 앞의 수부터 제일 작은 수를 비교해 앞으로 보내는 과정을 반복하는 것이다. 현재 인덱스와 뒤의 가장 작은 값의 인덱스를 선택하여 교체하는 것에서 선택 정렬이라고 한다. #define _CRT_SECURE_NO_WARNINGS #include // 배열 출력 함수 void printArr(int value[], int n) { for (int i = 0; i < n; i++) printf("%3d", value[i]); printf("\n"); } // 선택 정렬 실행 함수 void selectionSort(int* value, int n) { int i, j; int min = 0; int temp = 0; // swap에 쓰기 위한 변수 (임시) // i for문 : fo..
버블 정렬은 사람이 이해하기 쉬운 정렬이면서, 가성비가 좋지 않은 정렬이다. 버블 정렬의 원리는 배열의 앞뒤 값을 비교하면서, 큰 값을 뒤로 넘기는 과정을 반복하는 것이다. #define _CRT_SECURE_NO_WARNINGS #include void BubbleSort(int arr[], int len); int main(void) { int arr[5] = { 4, 6, 1, 3, 9 }; int i; BubbleSort(arr, 5); // 정렬이 된 후 출력 for (i = 0; i < 5; i++) printf("%d ", arr[i]); return 0; } void BubbleSort(int arr[], int len) { int temp; for (int i = 0; i < len - ..