본문 바로가기
c언어 오류 C4996 'scanf': This function or variable may be unsafe. 해결법 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. c언어 프로그래밍 중 빌드오류가 떴다. scanf 함수가 비주얼 스튜디오에서 보안 이슈로 막혀있어서 그렇다고 한다. 뭐 원인이 어쨌건 저쨌건 이걸 해결하려고 하는데 몇가지 방법이 있다. scanf_s 함수 사용 scnaf() 대신 scanf_s() 함수를 사용하면 오류가 해결되긴 한다. 그런데 scanf_s() 자체가 gcc에서 지원하지 않아 호환성이 떨어지고 visual studio에서만 막혀있다. 때문.. 2024. 1. 29.
c언어 년도를 입력받아서 윤년, 평년을 판단하는 프로그램 윤년의 조건을 보면 쉽다. 먼저 윤년이란 우리가 2월은 28일에 항상 끝나지만 4년에 한 번씩 29일날이 있다. 그 해를 윤년이라고 한다. ==윤년 조건== 1. 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않는다. 2. 400으로 나누어 떨어진다. 1. 은 동시 조건이다 4로 나누어 떨어지면서 100으로 나눠 떨어지면 평년이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 #include main() { int year; printf("연도 입력 : "); scanf("%d", &year); if ((year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0) printf("%d년은 윤년\n", year); else printf("%d년은 평년\.. 2021. 8. 21.
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언어 다중배열 [3][2] 제곱과 세제곱을 저장하고, 출력하는 프로그램 c언어 다중배열 [3][2] 제곱과 세제곱을 저장하고, 출력하는 프로그램 위와 같이 출력하기 위한 프로그램을 작성해보자. 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 #include #define ROW 3 #define COL 10 main() { int arr[ROW][COL]; for (int i = 0; i 2020. 7. 31.
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.