728x90

분류 전체보기 518

C언어 배열 주요예제 1

1. 입력된 수들 가운데 특정 범위에 포함되는 수가 몇 개인지 빈도수를 구하는 프로그램. #include int main() { int ia[10] = { 0, }; int i; printf("0에서 99사이의 값을 입력하시오. 그 이외의 값이면 종료합니다. \n"); scanf_s("%d", &i); while (i >= 0 && i 100) { printf("입력하신 범위가 너무 큽니다. 100개 이하로 입력해주세요\n"); printf("입력할 데이터의 개수를 100개 이하로 입력하세요 : "); scanf_s("%d", &N); } for (i = 0; i < N; i++) { printf("%d번째 데이터를 입력하세요. : ", i + 1); scanf_s("%d", &data[i]); } //..

C언어 이론6. 문자형 배열 및 표준함수 몇가지

내용 출처 : YES C (정보공학연구소 /생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Ⅰ. 문자열 ① C언어에는 문자열에 관한 데이터형이 따로 없고, 배열을 이용해서 문자열을 처리한다. ② 문자열을 포인터를 이용해서 처리하는 것도 가능한데, 이는 배열의 이름이 포인터 상수이기 때문이다. ③ C언어는 문자열을 배열의 요소요소에 각각의 문자를 넣고 마지막에 '\0'(NULL문자)를 넣는 것으로 처리한다. ④ 즉, 모든 문자열의 마지막에는 '\0'문자가 들어간다. 예를들어 string이라는 6글자는 's','t','r','i','n','g','\0'의 7글자 7바이트로 저장된다. ⑤ 한문자라도 ''(홀따옴표)로 묶으면 문자상수이고, ""(겹따옴표)로 묶으면 널문자가 포함된 문자열상수가 ..

C언어 이론5. 디버깅과 추적(vs2017 디버깅 단축키)

//내가 디버깅 관련 기능을 잘 모르기 때문에 일단 기본적인 단축키만 정리해 둠. 추적(Trace)은 컴파일 에러는 일어나지 않지만 원하는 결과가 나오지 않았을 때 프로그램을 한 라인씩 실행해가면서 각 변수들의 값들이 어떻게 변하는지 추적하여 논리적 에러를 찾는 것을 말한다. 디버깅 기능을 사용하려면 화면 상단의 표시된 부분이 Debug로 설정되어 있어야 한다. 기본 설정이니 건드리지 않으면 저 상태이다. 디버그와 관련된 내용은 당연히 디버그 탭에서 찾을 수 있다. F11은 코드를 한줄씩 실행한다.F10은 표준 함수의 내부 코드를 건너뛰기 위해서 사용한다.ctrl+F10은 커서 위치까지 실행할 때 사용한다. F9는 F5로 실행했을 때 중간에 멈출 지점을 설정하거나 해제할 때 사용한다. F5로 실행했는데 ..

C언어 이론5. 디버깅과 추적 (자주 뜨는 문법적 에러 메시지)

내용 참고 : YES C (정보공학연구소/생능출판사) 현재 마이크로소프트의 정책으로 학습용으로 한글로 번역되어 있는 비쥬얼 스튜디오를 무료로 받을 수 있다. 그래서 비쥬얼 스튜디오의 에러메시지도 대부분 한글로 출력되므로 책의 영어 메시지는 생략했다.또한 주인장은 C++이 C를 포함하는 관계로 C++환경에서 C코딩을 하고 있으므로 C에서만 나는 에러도 생략했다. ... 사실 책의 내용은 거의 상관없는 것 같기도 하고(..) 아래의 에러코드는 visual studio community 2017을 기준으로 했다.아래의 내용은 에러의 모든 내용을 포함하는 것이 아니므로 에러에 대한 자세한 내용은 에러번호를 클릭해서 나오는 홈페이지 도움말을 참조하자. warning C3861 : 정의되지 않은 함수를 사용했을 때..

C언어 연습문제 풀이 CH4 (20번 문제)

20. 15개의 수를 입력받아 출현 빈도수가 가장 적은 값을 구하여 출력하는 프로그램을 작성하라. #include int main() { const int N = 5; int input[N], num[N] = { '\0', }, min[N] = { '\0', }; int min_frequency = N, now_frequency = 0; // ※ 배열에 수를 입력받는 부분 printf("%d개의 수를 입력받습니다. \n", N); for (int i = 0; i < N; i++) { printf("%d번째 수를 입력하세요. ", i + 1); scanf_s("%d", &input[i]); } //------- //※ 입력받은 값의 빈도를 확인하기. for (int i = 0; i < N; i++) { n..

C언어 연습문제 풀이 CH4 (12 ~ 19)

문제 출처 : YES C (정보공학연구소/생능출판사) 12. scanf_s()를 통해 숫자 2개를 입력받아 사칙연산의 결과를 출력하는 프로그램을 작성하라. #include int main() { int num1, num2; printf("첫번째 정수를 입력하세요.: "); scanf_s("%d", &num1); printf("두번째 정수를 입력하세요.: "); scanf_s("%d", &num2); printf("%d + %d = %d \n", num1, num2, num1 + num2); printf("%d - %d = %d \n", num1, num2, num1 - num2); printf("%d * %d = %d \n", num1, num2, num1 * num2); if (num2 != 0) { ..

c언어 연습문제 풀이 CH4 (4 ~ 11)

문제 출처 : YES C (정보공학연구소/생능출판사) 4. 두 정수를 입력받아 곱셈을 하는 프로그램을 작성하라. 이때 정수 이외의 데이터가 들어오면 에러처리를 하라. #include void main() { int num1 = 0, num2 = 0; do { printf("첫번째 정수를 입력하세요 : "); scanf_s("%d", &num1); while (getchar() != '\n') {} printf("두번째 정수를 입력하세요 : "); scanf_s("%d", &num2); while (getchar() != '\n') {} if (!(num1 && num2)) { printf("잘못입력하셨습니다. 다시 입력해주세요. \n"); } } while (!(num1 && num2)); /* scna..

C언어 연습문제 풀이 CH4 (1~3)

문제 출처 : YES C (정보공학연구소/생능출판사) 1. 정수 n을 scanf_s()를 통해 읽어 들여 n이 음수가 아니면 0부터 n까지의 정수를 합산하고, n이 음수이면 n부터 0까지를 합산하는 프로그램. #include int main() { int n, sum = 0; printf("하나의 정수를 입력하세요.: "); scanf_s("%d", &n); if (n >= 0) { for (int i = 0; i = a || divide >= b) { break; } divide++; } printf("%d와 %d의 최대공약수는 %d입니다. \n", a, b, gcd); }

C언어 실습문제 풀이 CH4 (9 ~ 12)

문제 출처 : YES C (정보공학연구소/생능출판사) 9. 다음식을 만족하는 A,B,C,D를 구하라 A C B- B B C------------- B D C #include int main() { int a, b, c, d, result; for (a = 1; a < 10; a++) { for (b = 1; b < 10; b++) { for (c = 0; c < 10; c++) { for (d = 0; d < 10; d++) { result = (100 * a + 10 * c + b) - (100 * b + 10 * b + c); if (result == (100 * b + 10 * d + c)) { printf("a = %d, b = %d, c = %d, d = %d \n", a, b, c, d); }..

C언어 제어문 주요예제 5

A B C + C A C ------------ B D D를 구하는 프로그램 #include int main() { int a, b, c, d, sum; for (a = 1; a < 10; a++) { for (b = 1; b < 10; b++) { for (c = 1; c < 10; c++) { for (d = 1; d < 10; d++) { sum = (100 * a + 10 * b + c) + (100 * c + 10 * a + c); if (sum == 100 * b + 10 * d + d) { printf("A=%d, B=%d, C=%d, D=%d \n", a, b, c, d); } } } } } } 1^2+2^2+ ... +i^이 5000을 초과하는 가장 작은 i와 그때의 합을 구하는 프로그램..

반응형