본문 바로가기
[C언어 기초-07] 논리 연산자 and, or, not연산자 &&, ||, ! 관계 연산자는 , 뭐 이렇게 생겨먹어서 대충 필수 교육 과정을 거치면 의미를 이해하기 쉽다. 보다 크다, 작다 뭐.. 근데 논리연산자는 생겨먹은게 &&, ||, ! 뭐 이렇게 생겼다. 저게 뭐지 뭐 느낌표는 팩토리얼인가... 논리 연산자 연산자 의미 기본 형식 기능 && 논리곱 (and) x && y x와 y의 값이 모두 참이면 참 하나라도 거짓이면 거짓 || 논리합 (or) x || y x나 y 중 하나라도 참이면 결과값은 참. 둘다 거짓이면 거짓 ! 논리부정 (not) !x x의 논리 값이 참이면 거짓, 거짓이면 참 - && and연산자라고도 한다. 보통 조건문 같은대서 모든 조건을 만족시켜야할 경우에 사용하곤 한다. int a = 3; int b = 4; if( a < 10 && b < 10) { .. 2021. 8. 21.
[C언어 기초-05] 연산자 (대입, 산술, 증감연산자) C언어 연산자 대입연산자 앞서 나온 변수와 자료형 편에서 이미 대입연산자의 정의 아닌 정의가 나오기도 했고... 뭐 여러 코드를 실습하고 보면은 그냥 자연스레 몸에 익혀진다. 우선 대입연산자는 ' = ' 이다. 여기서 equal(동일)의 의미가 아닌 assign(할당하다)이다. 즉 변수 = 데이터; 는 변수에 데이터를 할당하다, 배정하다, 대입하다가 되는 것이다. 쉽게 오른쪽에 있는 값을 왼쪽에 넣는다. int n;// 정수형 변수 n 선언 n = 10;// 변수 n에 정수 10을 대입하여 초기화 이런식으로 사용할 수 있다. 아주 간단하다. 산술연산자 산술 연산자는 +, -, *, /, % 이렇게 다섯개 있다. 변수에 값을 할당하여 산술연산자로 계산을 해도 되고 그냥 쌩값과 값대로 계산해도 된다. (변수.. 2021. 8. 3.
[C언어 에러 해결] Visual Studio 2019 scanf() C4996 에러해결 C4996 오류 scanf: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Visual Studio 에서 scanf()를 사용하면 저런 에러가 뜬다. 번역기를 돌려보면 이 함수 또는 변수는 안전하지 않을 수 있습니다. 대신 scanf_s를 사용하는 것이 좋습니다. 지원 중단을 비활성화하려면 _CRT_SECURE_NO_WARNNINGS를 사용하세요. 자세한 내용은 온라인 도움말을 참조하십시오. 이렇게 뜬다. scanf_s를 쓰던지 _CRT_SECURE_NO_WARNINGS 를 사.. 2021. 8. 2.
[C언어 기초-02] 데이터 편 변수와 자료형 들어가기 데이터를 다루기 위해서는 변수를 사용해야 한다. 여기서 변수란?? 우리가 일상속에서 사용하는 변수란 뜻을 생각해보자. 뭐 설명하긴 어렵지만 '예상치 못한 변수' 라고 하면 딱 꽂힐 것이다. 뭐 비슷한 맥락같다. 쉽게 생각해서는 변하는 수라고 봐도 되겠다. 프로그램에서는 여러 데이터를 사용자가 입력하기도 하고 입력한 값에 따라서 출력하기도 한다. 계산기를 떠올리면 이해가 잘 간다. 그 데이터의 값을 저장하여서 요리조리 더하고 빼고 뭐 여러 과정을 거쳐 사용자에게 보여주기도 한다. "즉 데이터를 저장해 놓는 방" 이라고 생각하면 좋다. 아무튼 나중에 예제를 보고 보고 또 보고 코딩을 하고 하고 또 하다 보면 그냥 자연스럽게 내가 말하는 언어 마냥 머리속에 박히게 될 것이다. 하지만 아예 모르고 예제.. 2020. 11. 5.
[C언어 기초-01] Visual Studio 2019 설치하기 개발환경 visual studio 2019 c언어를 공부하기 위해선 비주얼스튜디오가 필요하다.뭐 이클립스나 다른 컴파일러도 상관은 없다.하지만 내가 사용하는 것이 이거이기 때문에 이걸로 우선 설치를 해보자.그런데 이게 뭘까?? 간단하게 얘기하자면 프로그램을 만드는 프로그램툴이라고 생각하면 된다.그것만 알아도 충분하다. 뭐 좀 있어보이게 얘기하자면 사람이 프로그래밍한 언어를 컴퓨터가 알아들을 수 있게 기계어로 변환해주는 번역기라 보면 된다. 우선 visual studio 2019 다운 이 링크에 들어가면 아래처럼 세개의 다운로드가 있다.우리는 무료로 사용할 수 있는 커뮤니티를 설치할 것이다. 다운로드를 받고 exe 파일을 실행해보자. 계속을 누른다. 기다리라는 말을 잘 들으면 된다. 기다리면 이렇게 화면이 뜬다. .. 2020. 10. 28.
[c언어 시작] 개발자가 되려면 c언어를 공부해야 하는 이유 4차산업시대, IT, 인공지능, IOT, 빅데이터, VR/AR, 스마트폰, 스마트, 스마트, 스마트 뭐 요즘에는 초등학생 때부터 코딩을 배운다는 말이 있다. 실제로 그런지 안 그런지는 내가 뭐 조사해본 적도 없어서 잘은 모르겠지만 아무튼 예전에 내가 초등학생 때 가벼운 마음으로 방과 후 학교에서 컴퓨터를 배우며 컴이조아 같은 뭐 이상한 걸 했는데 그때보단 컴퓨터에 접근하기가 더 수월해졌으리라 본다. 개발자.. 나는 뭔가 개발자란 단어가 멋있어 보였다. 뭔가 개발하는 사람이여서 멋있고 특히나 예전부터 지금까지 쭉 좋아하는 게임들도 그들이 만들고 나도 그렇게 되고 싶기도 했다. 내 주위에도 비전공자인데 개발자가 되고 싶어하는 경우를 봤다. 비전공자가 할 수 있느냐?? 충분히 가능하다고 본다. 나 같은 경우는.. 2020. 10. 17.
C언어 함수 기초 사용자 정의 함수, 함수정의, 리턴, 매개변수 C언어 함수 기초 사용자 정의 함수, 함수정의, 리턴, 매개변수 C언어뿐만 아니라 java, python, c++ 등등... 여러 가지 프로그래밍 언어를 공부를 할 때 필수적으로 나오는 게 바로 함수이다. 우리가 함수(function)라는 단어를 처음 접할때가 아마... 중학생이었나?? 뭐 대충 그랬던 거 같다. 그때 배운게 y=f(x) 이건대 대충 비슷한 의미라 볼 수 있겠다. c언어는 기본적으로 main()함수를 가지고 있고 표준 함수와 사용자가 직접 만들어 사용하는 사용자 정의 함수가 있다. 표준함수 표준 함수는 컴파일러에 의해 기본적으로 제공되는 함수를 말하는데 기본적으로 c언어에서는 입력과 출력을 해주는 scanf(), printf()가 있다. 표준 함수를 사용하기 위해서는 표준 헤더 파일을 작.. 2020. 8. 14.
[C언어] 달팽이수열 프로그래밍 [C언어] 달팽이 수열 프로그래밍. 달팽이 수열이란 n*n정방행렬에 1행 1열부터 수가 1씩 증가하면서 뱅글뱅글 달팽이처럼 돌돌 말아져 있는 것을 의미한다. 백문이 불어일견 어떻게 생겨먹은 건지 한 번 봐보도록 하자. 예를 들어 3*3 행렬이라면 1 2 3 8 9 4 7 6 5 이렇게 생긴것을 의미한다. 먼저 프로그램을 어떻게 짜야할지 생각해보면 행렬이니까 다중배열이며 반복문으로 배열에 값을 저장해나가면 되겠다. 코드를 한 번 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include //달팽이 수열 main() { int num, cnt = 0, x = 0, y = -1.. 2020. 8. 11.
C언어 마방진(magic square) 프로그래밍 C언어 마방진(magic square) 프로그래밍 마방진. magic square라고도 한다. N*N 정방 행렬의 행의 합, 열의 합, 대각선의 합이 모두 같은 값을 갖는 사각형을 말한다. 이 글에서는 홀 수 마방진을 프로그래밍을 알아본다. 위의 그림처럼 출력하도록 하는 것인데 마방진을 만드는 방법은 의외로 간단하다. 1. 첫 번째 줄(행)의 가운데에 1을 집어넣는다. 2. 두 번째 값부터 한 칸 왼쪽 한 칸 위로 자리를 옮겨서 1씩 증가시켜서 집어넣는다. (맨 윗줄 다음 자리는 맨 아래이며 맨 왼쪽 다음 자리는 맨 오른쪽이다.) 3. 다음 넣을 자리에 이미 값이 들어가 있으면 x축을 한 칸 아래로 옮겨서 집어넣는다. 1 3 2 위 설명대로 3*3 행렬이라 쳤을 때 1을 먼저 맨 윗줄 가운데 집어넣고 맨.. 2020. 8. 10.
c언어 1에서 1000사이 정수중 수를 구성한 개개의 수가 연속적으로 되어있는 수를 찾는 프로그램(for문, if~else문, break) 1에서 1000사이 자연수 중에 수를 구성한 개개의 수가 서로 연속적으로 되어있는 수를 찾는 프로그램예) 12, 34, 56, ..., 123, 567... 12345678910111213141516171819202122232425#include#define RANGE 1000main() { int num, last, remain, flag, line = 0; for (int i = 10; i 2020. 6. 16.
c언어 1~1000사이에 있는 수에 대해 암스트롱 수를 구하는 프로그램(각 자리 수에 세제곱의 합이 그 자신과 같아지는 수) 12345678910111213141516171819202122//1~1000사이에 있는 수에 대해 암스트롱 수 구하기(각 자리 수에 세제곱의 합이 그 자신의 수와 같아 지는 수)//371 = 3^3(27) + 7^3(343) + 1^3(1)#include #define RANGE 1000 main() { int num, remain, total; for (int i = 1; i 2020. 6. 16.
c언어 러시아 농부 곱셉 알고리즘, 농부곱셈법, 이집트곱셈법 'a la russe' 알고리즘이라고도 불린다. 알고리즘을 살펴보자면 1. 곱하고 싶은 두 수 A, B를 입력한다. 2. A를 2로 나누고 몫만 취하고 나머지는 버린다. 3. A를 나눈만큼 B도 2씩 곱한다. 4. 이 과정을 A를 더 나눌 수 없을때 까지 반복 (몫이 1일때까지 반복) 5. A를 나눈 몫이 홀 수 일 경우의 B의 값을 다 더한다. 이것을 c언어 코드로 보자면 12345678910111213#include main() { int A, B, result = 0; //A, B와 result 결과값 scanf("%d %d", &A, &B); //입력 while (A >= 1) { //A의 몫이 1일때 까지만반복 if (A % 2 == 1) //A가 홀수면 result += B; //result에.. 2020. 6. 11.
C언어 키보드로 입력된 문자열의 문자 수, 단어 수, 줄 수를 계산 getchar() 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include #define YES 1 #define NO 0 main() { //입력된 문자 수, 단어 수, 줄 수를 계산하는 프로그램 char c, inword; int nc, nw, nl; //문자, 단어, 줄 inword = NO; nl = nw = nc = 0; while ((c = getchar()) != EOF) { nc++; //문자 수 세기 if (c == '\n') //줄넘김이 있으면 nl++; //줄 수 세기 if (c == ' ' || c == '\n' || c == '\t') //공백을 다시 만날때까지 inword YES inword = NO; else if.. 2020. 6. 8.
C언어 문장을 입력 받아 공백문자 개수 세고, 밑줄로 변환하는 프로그램 getchar(), putchar() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #define SPACE ' ' #define UNDERBAR '_' main() { int ch; int count = 0; while ((ch = getchar()) != EOF) { if (ch == SPACE) { count++; putchar(UNDERBAR); } else putchar(ch); } printf("공백 문자 개수 : %d\n", count); } Colored by Color Scripter cs 9행 int형 ch변수에 getchar()함수로 문자를 입력받고 EOF(ctrl+z)가 아니면 계속 반복 10~13행 입력받은 문자가 define으로 정의된 SPACE(' ')즉 공백.. 2020. 6. 5.
C언어 알파벳을 입력받아 대소문자 변환 (소문자는 대문자로, 대문자는 소문자로 나머지는 그대로) getchar(), putchar() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include #define CONVERT ('a' - 'A') //a는 97 A는 65 CONVERT는 32 void main() { int ch; while ((ch = getchar()) != EOF) { if ('A' 2020. 6. 5.