묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 시작하는 C 프로그래밍
해답파일 위치를 모르겠습니다
달팽이배열 도저히 못풀겠어서 해답을 보고싶은데 어디있는지 찾아도 못찾겠어요ㅜㅜ
-
해결됨독하게 시작하는 C 프로그래밍
필수실습문제 해답
챕터14 필수실습문제UI와 기능으로 나눠서 세 정수를 입력 받아 최대 값 구하는 문제를 혼자 해보고있는데해답 파일이 찾아봐도 없는거 같아서요 ! 강사님이 작성하신 해답 예시와 비교해보고 싶은데 알려주실 수 있나요? 저는 이렇게 했는데 맞게 한건지 모르겠습니다 ㅜ 코드는 잘 돌아갑니다 그리고 숫자입력을 받는 부분에서 반복문을 사용할 수도 있을까요?for문을 사용할 수 있을거 같아서 시도 해보는 중인데 중간에 막혀서 궁금합니다.막히는거보니 반복문을 쓸 수 없는 부분인거 같기도 해서요 ㅜㅜ숫자 입력 받는 부분을 반복문으로 줄일 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
C언어랑 관계있는지..
음 클로저와 c언어의 함수 포인터 비슷한 느낌인데 차이점은 무엇일까요클로저란 이름처럼 전역 변수처럼 사용하지만 클로저 함수만 접근 가능하기 떄문에 클로저란 이름을 쓴거 같은데 이점이 함수 포인터와 다른 점일까요... C언어 포인터 질문과 관계가 있는지 몰르겠지만 왠지 클로저 구현을 한다면 포인터를 사용한게 아닐까 싶은생각이 문득 들어서 한번 여쭤봅니다..
-
해결됨독하게 시작하는 C 프로그래밍
필수 실습 예제 질문 있습니다.
예제는점수 0~100점을 입력 받아서 80점 이상 이면 합격 그렇지 않으면 불합격이라고 출력하는 프로그램 작성입니다.#include<stdio.h>int main(void){ unsigned int input = 0; scanf_s("%d", &input); (input <= 100) ? printf("점수를 입력하세요: %d\n", input) : 0; (input <= 100) ? printf("결과 : %s", (input >= 80) ? "합격" : "불합격") : 0; return 0;}저는 이런 식으로 코드를 짰는데 잘못된 점이 있는지 궁금합니다. 0~100을 나타내는 코드가 영상에 안 나와서 질문 드립니다.
-
해결됨독하게 시작하는 C 프로그래밍
포인터 질문드립니다
개념이 잘 안 잡혀서 다시 한 번 여쭈고자 질문을 남깁니다. 변수 : 메모리 공간을 사용하는 방법포인터 : 변수가 저장된 메모리 공간의 주소변수에 바로 값을 대입 : 직접 지정포인터로 접근해 값을 대입 : 간접 지정제가 이해한 개념이 맞을까요?
-
해결됨독하게 시작하는 C 프로그래밍
scanf("%d\n", &input)
수업을 듣다 궁금증이 생겨서 질문드려요~scanf("%d\n", &input);4입력시 4\n여서 종료하려면 \n하나가 더 필요 한거 까지는 이해가 됐습니다. 그후에 \n를 계속 눌러도 안넘어가지는게 어떤 것때문인지 궁금합니다.%d\n 형식을 사용하므로 형식에 안맞는 \n는 안읽고%d\n의 형식만 읽는건가요?아니면 %d\n 는 숫자와 (1개 이상의 공백문자)여서 엔터가 계속 입력되고 %d(다른정수)\n입력시 \n를사용하므로 %d만남기고 종료되는건가요?형식이 달라서 안읽는건지 \n가 1개이상의 공백문자를뜻해서 여러번읽는건지 궁금합니다!
-
해결됨독하게 시작하는 C 프로그래밍
for문 증감 연산
이 두 구문에서 차이는 증감연산자가 전위인지 후위인지 인데 for문에서는 전위든 후위든 작동 방식에 있어서는 차이가 없지 않나요? i = 0 일때 조건식을 검사해서 참이므로 i를 출력하고 i++든 ++i든 i의 값을 1 증가 시킨후에 다시 조건식을 검사하는 것으로 알고 있습니다. chat gpt에서 차이가 있다고 나오는데 설명이 명확하지 않아 여쭈어 봅니다! 정리하자면 전위와 후위의 근본적인 차이점은 알고 있지만 그것이 for문 증감식으로 쓰일땐 결과적으로 같은 동작 방식을 취하는게 아닌가 궁금합니다 감사합니다!
-
해결됨독하게 시작하는 C 프로그래밍
char ch=0;
char ch=0;ch=getchar()랑char ch=getchar(); 차이가 뭔지모르겠어요ch=0은 다른뜻이있는건가여?자료형 변수 = 정수로 정의하셨는데자료형 변수= 함수로 정의해도 나중에 문제가 생길까여?
-
해결됨독하게 시작하는 C 프로그래밍
엔디안에 대해 문의드립니다.
강의에서 문자열의 경우, 메모리를 확인했을 때 문자열의 순서에 따라서 바이너리가 정렬된 것을 알 수 있었습니다. 근데 int로 선언된 16진수 데이터의 경우는 역순으로 채워진다는 개념을 들으니 혼동이 옵니다. 혹시 문자, 문자열의 경우는 정배열이고 숫자 데이터의 경우는 역배열이다 라고 생각하면 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
static 변수에 관해서 질문이 있습니다.
int TestFunc(){ static int a = 10; ++a; return a; } int main(){ printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); printf("%d\n",TestFunc()); }위 예제에서의 질문입니다. 1. Compile시에 정적영역이 결정되는 건가요?질문이유 : a의 주소에 코드가 실행되지 않았음에도 이미 10이라는 값이 들어가있어서 질문을 드립니다. 2. TestFunc()이 실행될 때 static int a = 10가 매번 평가되는게 아닌건가요? 질문이유 : 제 생각으로는 정적영역에 있더라도, 할당 연산자 때문에 10을 매번 넣어서, 출력값이 11 ,11 ,11이 될거라고 생각했습니다.
-
해결됨독하게 시작하는 C 프로그래밍
실행과 참조의 개념에 대한 질문
양질의 강의에 진심으로 감사의 말씀 드립니다.다름이 아니라 제가 참조에 대해서 계속 고민하다가 개념적인 이해를 시도하는데 이것이 맞는 것인지 확인하고자 강사님께 질의를 남깁니다. 직접참조 : 메모리 주소로 접근해서 바이너리 확인- 메모리 주소 : 포인터(값을 가리키지 않고 주소를 나타냄)- 그 메모리 주소의 값 : 비트로 구성된 메모리의 값- 변수 : 메모리가 값을 위해 할당한 데이터 공간(값이 들어갈 수 있는 일종의 space) 간접참조 : 메모리 주소의 주소- 즉, 포인터의 포인터- 그래서 간접참조된 메모리 주소에는 값이 들어있지 않고 그 값을 가리키는 포인터(메모리 주소)가 들어있다. "가장 큰 차이는 직접참조는 메모리 공간에 쓰인 바이너리가 있는 것. 간접참조는 주소에 관련된 정보 바이너리가 있기 때문에(직접참조는 메모리 주소 - 값, 간접참조는 메모리주소 - 메모리 주소) 일종의 파이프-라인. 따라서 같은 15라는 값을 나타내도 직접참조는 그 메모리 주소의 값 그 자체를 나타내고, 간접참조는 그 주소에 대한 정보 바이너리가 적혀있다. "제가 계속 고민을 하다 이런식으로 좀 개념을 잡았는데 제대로 잡고 있는 것인지 궁금합니다. 감사합니다.
-
해결됨독하게 시작하는 C 프로그래밍
최대값구하기 서바이벌
부호있는정수이므로 max의초기값을 0x 80 00 00 00으로해야 맞는게 아닌지... 하는생각이듭니다
-
해결됨독하게 시작하는 C 프로그래밍
비트연산자 뺄셈 구현에서 질문이 있습니다.
안녕하세요 선생님!선생님 덕분에 재미있게 C를 공부하고 있습니다. 감사합니다.다름이 아니고 비트연산자로 뺄셈을 구현할 때 약간 이해가 안 가는 점이 있어 질문을 드립니다. int a = 9, b = 6; printf("%d\n", a + (~b + 1)); // 1001 + 1010 = 10011 ....??? return 0;10진수 9에서 10진수 6을 빼는 연산에서6을 2진수로 치환한 후 부정을 걸어 1의 보수로 만들고 1을 더하면 1010이 되는 것으로 알고 있습니다.여기에 10진수 9를 2진수로 치환한 1001을 더하면 10011이 됩니다.그럼 답이 19가 되어야 하지 않을까 생각이 듭니다. 자리올림을 소거하면 0011로 3이 맞지만그걸 따로 코딩을 안해준 상태에서는 19가 나와야하지 않나요?혹시 C에서 자리올림을 알아서 소거해주는 걸까요? 아니면 제가 계산을 잘 못하고 있는 걸까요? 답변 주시면 너무 감사하겠습니다!
-
해결됨독하게 시작하는 C 프로그래밍
continue문 질문입니다
#include <stdio.h>int main(void){ char ch; while (1) { ch = getchar(); if (ch == 'x') break; if (ch == 'q') continue; putchar(ch); } return 0;}이 예제에서 한 문자를 입력받을 때마다 while문이 실행되며 x인지 q인지를 검사하는 것으로 알고 있습니다. 만약에 aaaq를 입력하고 엔터를 누르지 않앗다면 q를 입력하는 순간 컨티뉴 문이 작동하여 putchar을 실행 시켜야 한다고 생각하는데 엔터를 눌러야만 작동하는 것이 이해가 안됩니다 ㅜㅜ 또한 getchar 함수는 한 글자씩 입력을 받는데 제가 if(ch == zxc) break;를 추가하고 zxc를 입력 후 엔터를 치면 브레이크 문이 작동 됩니다. 정리하자면 q나 x를 입력하는 순간에 브레이크나 컨티뉴 문이 작동 해야 하는게 아닌가요? 왜 엔터를 쳐야 작동하는지 모르겠습니다. 또한 getchar함수는 한글자만 입력받는 것으로 알고 있는데 왜 문자열로도 작동이 될까요?
-
해결됨독하게 시작하는 C 프로그래밍
독하게 시작하는 C 프로그래밍 책 관련 문의
문제가 된다면 질문은 바로 삭제하겠습니다. 다름이 아니옵고, 책을 구매하고 싶은데 절판이라 너무 아쉽습니다. 혹시 재발간 계획은 없으신지..구할 수 있다면 어디인지 궁금합니다🙏
-
해결됨독하게 시작하는 C 프로그래밍
Lookup 배열과 STL MAP 과의 비교
안녕하세요오늘도 잘 듣고 있습니다 Lookup 배열에 대해 보다 보니 stl의 map과 같다는 생각이 들게 되는데요 실제로 lookup 배열과 map 두 자료 구조 형태의 성능에 대한 차이가 궁금하네요 어떤 방식이 더 효율적인지 알고 싶습니다lookup의 경우 index(?) 라고 해야 하나요? ^^ 그런 구성을 사용자가 직접 신경을 써서 정해야 할 것 같지만 이 부분을 제외하면 성능만으로 봤을 때 어느 방식이 더 좋은지 궁금합니다
-
해결됨독하게 시작하는 C 프로그래밍
비트연산을 이용한 뺄셈
비트연산을 사용한 뺄셈에서 a b라고 사용자에게 입력받을 변수 선언하고 (~b+1)+a; 라고 하면 캐리를 고려하지 않은 오류가 발생하지 않나요? 음수간의 뺄셈에서도 오류가 발생할 구간이 있을 것 같은데 설명 부탁드리겠습니다 ㅠㅠ
-
해결됨독하게 시작하는 C 프로그래밍
필수실습문제 MyStrcpy() 함수 작성하기 에서 질문있습니다.
필수실습문제 MyStrcpy() 함수 작성하기 에서void MyStrcpy(char* pszDst, int nSize, char* pszSrc) { size_t nLenSrc = 0; nLenSrc = strlen(pszSrc); for (int i = 0; i < nLenSrc; ++i) pszDst[i] = pszSrc[i]; }로 함수를 정의하셨는데 이럴경우에 매개변수로 들어간 nSize는 함수에서 어떤 의미가 있는건가요...?
-
해결됨독하게 시작하는 C 프로그래밍
정수와 실수 출력에 관하여...
#include <stdio.h> int main(void) { int fee=1000; printf("%d\n", fee * 0.75); int fee2 = 1000 * 0.75; printf("%d", fee2); return 0; }섹션 11의 버스요금 계산 문제를 풀면서 궁금한 점이 생겼습니다. 예제를 작성할때 첫번째 방법으로 풀었더니 출력이 0이 나와서 두번째 방법으로 해보니 정상적으로 750이 출력되었습니다. 이 두 가지 방법의 차이점이 무엇인가요?
-
해결됨독하게 시작하는 C 프로그래밍
표준입출력 강의를 마치고 질문을 드립니다
printf 함수 같은 경우에는 데이터 Size를 정하지 않고, 어디에 저장 될지를 지정 하지도 않는데,Printf 함수는_getch() or_getche() 와같은 Non buffered I/O같은 방식인가요???