안녕하세요 선생님. 함수와 재귀함수 영상에서(29분40초) 포인터를 입력값으로 받는 함수 부분 질문드립니다. myArray의 대한 배열값을 avgArray를 호출하여 return (double)sum / size;로 반환하는데 괄호 (double)부분의 계산은 따로 생략인건가요? 혹은 (double)의 의미가 무엇인지 궁금합니다.
5:00 강의자님도 배수로 올리긴 했으나. 이해를 위해 올립니다. 약수가 아닌 배수 이니까. 1 ~ 19 까지 2의 배수 3의 배수는 2 4 6 8 12 14 16 18 , 3 6 9 12 15 19 까지 (즉 2로 나누어 떨어지고 3으로 나누어 떨어지는값) 해당 값에서 6으로 나누었을 때 0이 아닌 것들 2 4 8 14 16 3 9 15 19 인데 Count++되어 9개 가 나온다.
이진수를 십진수로 바꾸는 함수 부분을 이렇게 작성했는데, 기능상으로는 문제가 없어보이는데 다른 측면에서 문제가 될 수 있는 경우가 어떻게 될까요? unsigned char to_decimal(const char bi[]) { unsigned char sum = 0; int j = 0; for (int i = strlen(bi) - 1; i >= 0; --i) { if (bi[j] == '1') sum = sum + (int)pow(2, i) * 1; else if (bi[j] != '0') { printf("Wrong character : %c", bi[j]); exit(1); } j++; } return sum; }
count ++의 의미를 제대로 모르겠네요, count를 썼을 때는 앞의 조건들이 일치하는 값의 갯수를 적어주는 거 같은데, ++면 1씩 더해줘라 이런뜻이니ㅠ 최종 카운트갯수에 1을 더해서 최종 답을 적으란 말도 아니고, count + = i ; 이런 것도 있네요ㅠ 설명 부탁드립니다.
선생님 안녕하세요. 오늘 재접수 했습니다. 열기가 대단한 지 두시간 반만에 집근처는 모두 마감이라 한시간 내외의 거리로 접수했어요 지난번에 요청드렸었던 내용으로 재 요청 드립니다. 영상에서 사용하신 문제를 다시 풀어볼 수가 없어서요(종이로 써가면서..) 영상 캡쳐도 안되더라고요 문제 모음집 파일 요청 드립니다.
#define CRT SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { int ch; FILE* fr; // TODO: file pointer to write FILE* fw; const char* out_filename = "output.txt"; unsigned long count = 0; if (argc != 3) { printf("Usage: %s filename\n", argv[0]); exit(EXIT_FAILURE); } if ((fr = fopen(argv[1], "r")) == NULL) // Open a text file for reading. { printf("Can't open %s\n", argv[1]); exit(EXIT_FAILURE); } if ((fw = fopen(argv[2], "w")) == NULL) { printf("Can't open %s\n", argv[2]); exit(EXIT_FAILURE); } /* r: reading w: creating and writing or over writing a: appending or creating and writing r+: both reading and writing w+: reading and writing, over writingor creaitng a+: reading and writing, appending or creating */ while ((ch = fgetc(fr)) != EOF) // getc(fr) { fputc(ch, stdout); fputc(ch, fw); count++; } printf("\n"); fclose(fr); fclose(fw); printf("File %s has %lu characters\n", argv[1], count); printf("Copied to %s", out_filename); return 0; } 질문) 출력 조건문에서 out_filename대신 argv[2]를 대신 사용하려면 printf("Usage: %s filename\n", argv[0]); 이 부분 조건문 부분의 인자를 3으로 해야 안전하게 데이터를 보호할 수 있는 것으로 알고 있는데 이렇게되면 파일이 없는 경우 생성이 되기전에 프로그램이 종료가 되는 문제점이 발생합니다. 이 상황에서 argv[2]를 사용하려고 하면 코드를 어떻게 구성해야 프로그램이 정상작동될까요?
15:25 예시 세번째 질문입니다. 문자열의 길이 계산에서 length는 0으로 선언되었는데 str[length]는 위에있는 Hello, World! 문자의 길이에 맞춰서 length 값을 1씩 증가하되 시작점이 0이라는 걸까요? 널값을 어떻게 만난다는건지 잘 이해가 안가서요. 문자열 길이계산부분만 다시 설명 부탁드립니다.
10:11초 정도질문입니다. []대괄호안에 숫자가 들어가면, 문자배열의 공간수로 이해하였는데, 공란은 무슨의미인가요? 공란이있거나 숫자가 았거나 똑같이 풀이가되어 헷갈립니다. 그리고 %s 변수는 널값 ‘\0’ 이 나올때까지 문자 배열대로 쭉 출력하여야 하는데, 이게 항상 생략되는건가요? 생략되는 경우가 따로있나요?