무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨C 프로그래밍 - 입문부터 게임 개발까지
실수변수는 = 3.23f에서 f를 쓰는 이유
3.23f라고 쓰는 이유가 뭔가요? 3.23이라고 쓰면 안되나요? 설명해주세요!
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
A B 를입력하면 순서가 뒤바뀌어서 B A 가 나오도록 하는법
제가 2개의 문자가 입력되면 순서가 바뀌어 출력되게 하려고합니다 예를들어 A B 를 입력하면 B A 가 나오도록 밑에 제가 직접 입력해 본것입니다. 그런데 "예외가 처리되지 않았습니다 0x7A6A98F1(ucrtbased.dll)에(practice.exe의) 처리되지 않은 예외가 있습니다. 0xC0000005: 0x00DA1339 위치를 기록하는 동안 액세스 위반이 발생했습니다" 라고 뜨는데 어떻게 해야 할까요? #include <stdio.h> int main() { char x,y; scanf_s("%c %c", &x, &y); printf("%c %c", y, x ); return 0; }
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
저장파일 불러오기
저장했던 파일을 다시 어떻게 불러오는지가 궁금합니다
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
작업 실행이 되지 않아요
아래 작업이 실행 되지 않습니다; #include <stdio.h> int main(void) { char str[] = "cocacala"; /*printf("%s\n", str); printf("%d\n", sizeof(str));*/ for (int a = 0; a < sizeof(str); a++); { printf("%c\n", str[a]); } return 0; }
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
예외발생이 생깁니다.
char str[] = "pepsi"; printf("%s\n", str); printf("%s\n", sizeof(str)); 를 할 경우 예외가 발생하게 되는데요, 왜 3번째 줄에서 %s\n이 아닌 %d\n을 쓰는지 궁금하고, %s\n을 사용하는경우 왜 예외발생이 생기는지 궁금합니다.
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
현재 함수 까지 강의 들은 학생입니다. rand에 관해서..
강의 감사하게 잘 보고 있습니다. int i = rand() & 100+1; int a = rand() % ( i * 7) +1; 위에껀 i가 1 ~ 100을, 밑에껀 a가 i의 값에 따라 변하는 범위를 가지는데 (만약 i가 1이라면, a는 1~7) &와 %의 차이가 무엇인가요? 그냥 &,%의 기호 뒤가 +냐 *냐의 차이인가요?
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
계산기 함수 프로젝트
선생님이랑 똑같이 했는데 오류는 안 나지만 실행이 안 되고 그냥 빈칸만 떠있는 다음 이런 말들이 아래에 나오면서 종료한다고뜨네요 ㅠㅠㅠ 이유 알려주실수 있으신가요? warning C4013: 'srand'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다. warning C4013: 'exit'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다. warning C4013: 'rand'이(가) 정의되지 않았습니다. extern은 int형을 반환하는 것으로 간주합니다. #include <stdio.h> #include <time.h> void ShowQuestion(int level, int num1, int num2); int getRandomNumber(int level); void success(); void fail(); int main(void) { // 문이 5개가 있고, 각 문을 통과할때마다 더 어려운 문제 출제 // 맞히면 통과, 틀리면 실패 srand(time(NULL)); int count = 0; for (int i = 0; i < 5; i++) { int num1 = getRandomNumber(i); int num2 = getRandomNumber(i); //printf("%d x %d는 얼마입니까? ",num1,num2); ShowQuestion(i, num1, num2); int answer = -1; scanf_s("%d", &answer); if (answer == -1) { printf("프로그램을 종료합니다."); exit(0);//프로그램을 아예 끝냄 } else if (answer == num1 * num2) { success(); count++; } else { //실패 fail(); } } printf("당신은 5개의 문제 중 %d개를 맞혔습니다.", count); return 0; } int getRandomNumber(int level) { return rand() % (level * 7) + 1; } void ShowQuestion(int level, int num1, int num2) { printf("\n\n\n######## %d번째 비밀번호 ######## \n",level); printf("\n\t%d x %d는 ? \n\n", num1, num2); printf("#############################\n"); printf("\n비밀번호를 입력하세요. (종료 : -1)>> "); } void success() { printf("맞혔습니다!\n"); } void fail() { printf("땡!\n"); }
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
파일입출력
text 파일을 열 때 그 파일이 c 드라이브에 이미 만들어져 있어야 하는건가요? 파일입출력은 컴퓨터에 저장된 파일을 비주얼스튜디오를 이용해서 열고 입출력하는 건가요? 마지막으로 파일 입출력을 왜 쓰는지, 언제 쓰는지 궁금합니다!
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
코딩질문입니다..
실행이 안되는데 오류목록에는 아무것도 안나와요.. 1시간동안 찾아봤는데 뭐가 문제인지 모르겠어요ㅠㅠ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //비밀번호를 입력 받아서 //맞는 경우? 비밀 일기를 읽어와서 보여주고, 계속 작성하도록 합니다. //틀린 경우? 경고 메세시를 표시하고 종료합니다. #define MAX 10000 int main_file_project(void) { //fgets, fputs 활용 char line[MAX]; //파일에서 불러온 내용을 저장할 변수 char contents[MAX]; //일기장에 입력할 내용 char password[20]; //비밀번호 입력 char c; //비밀번호 입력 할 때 키값 확인용[마스킹] printf("비밀일기에 오신 것을 환영합니다.\n"); printf("비밀번호를 입력하세요 : "); // getchar() getch()의 차이? // getchar() : 엔터를 입력받아야 동작을 합니다. // getch() : 키 입력시 바로 동작을 합니다. int i = 0; while (1) { c = getch(); if (c == 13) //Enter키 아스키코드 -> 비밀번호 입력 종료 { password[i] = '\0'; break; } else { printf("*"); password[i] = c; } i++; } printf("\n\n===비밀번호 확인 중...===\n\n"); if (strcmp(password == "skehzheld") == 0) //비밀번호 일치 { printf("===비밀번호 확인 완료===\n\n"); char* fileName = "C:\\Users\\김대호\\Desktop\\secret.txt"; FILE* file = fopen(fileName, "a+b"); //파일이 없으면 생성, 파일이 있으면 append를 한다 (뒤에서부터 내용을 추가한다) if (file == NULL) { printf("파일 열기 실패\n"); return 1; } while (fgets(line, MAX, file) != NULL) { printf("%s", line); } printf("\n\n 내용을 계속 작성하세요! 종료하시려면 EXit를 입력하세요\n\n"); while (1) { scanf("%{^\n]", contents); //새 줄(\n)이 나오기 전까지 읽어드림 (한 문장씩) getchar(); // Entet 입력 (\n) Flush 처리 if (strcmp(contents, "EXIT"0) == 0) { printf("비밀일기 입력을 종료합니다\n\n"); break; } fputs(contents, file); fputs("\n", file); //Enter를 위에서 무시처리 하였으므로 임의로 추가 } fclose(file); } else //비밀번호 틀린 경우 { printf("※※※※※ 비밀번호가 틀렸습니다 ※※※※※"); printf("꺅!! 당신 누구야!?? 감히 내 일기장을 !!! \n\n\n"); } return 0; }
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
선생님 설명듣기전에 미리 만들어봤습니다
구구단을 만든다길래 왠지 할수있을것같아서 한번 해봤습니다.
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
초반에 경찰서 조서쓰기 프로젝트 할때
선생님이 설명해주시기도 전에 직접 만들있을것같아서 직접 구성하여봤습니다 char name[256],what[256]; int age; float tall, kg; printf("이름이 뭐에요?"); scanf_s("%s", &name,sizeof(name)); printf("나이가 몃살이에요?"); scanf_s("%d", &age); printf("키가 몃이에요?"); scanf_s("%f", &tall); printf("몸무게가 몃이에요?"); scanf_s("%f", &kg); printf("범죄 이유가 뭐에요?"); scanf_s("%s", &what, sizeof(what)); printf("피의자 정보\n"); printf("이름 : %s\n", name); printf("나이 : %d\n", age); printf("키 : %.1f\n", tall); printf("몸무게 : %.1f\n", kg); printf("범죄이유 : %s\n", what); return 0; 이정도면 완벽한가요 ?
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
정수실수
%d는 정수 %f 는 실수인거죠 ? %d = 1 %f = 1.1
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
감사합니다 잘 보고 있습니다. 교재는...
혹시 이 강의 교재는 따로 없는건가요?
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
되게 간단한 질문인데요,,
안녕하세요!!!! 제가 강의를 듣다가 문득 선생님께서 한줄만 깔끔하게 키보드로 드래그를 하시는걸 알았는데 이게 단축키가 따로있을까요..? 저는 방향키랑 Ctrl눌러서 하는데 원하는 한줄?만 딱 드래그 되는게 아니라서요 .. 위에거까지 같이 되는 경우도 있구,, 알려주시면 감사합니다 ,,
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
질문이 있어요
'NadoCodeing.exe'(Win32): 'C:\Users\Administrator\source\repos\NadoCodeing\NadoCodeing\Debug\NadoCodeing.exe'을(를) 로드했습니다. 기호가 로드되었습니다. 'NadoCodeing.exe'(Win32): 'C:\Windows\SysWOW64\ntdll.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다. 'NadoCodeing.exe'(Win32): 'C:\Windows\SysWOW64\kernel32.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다. 'NadoCodeing.exe'(Win32): 'C:\Windows\SysWOW64\KernelBase.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다. 'NadoCodeing.exe'(Win32): 'C:\Windows\SysWOW64\vcruntime140d.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다. 'NadoCodeing.exe'(Win32): 'C:\Windows\SysWOW64\ucrtbased.dll'을(를) 로드했습니다. PDB 파일을 찾거나 열 수 없습니다.실행하면 이렇게 자꾸 뜨고, printf 쳤는데도 아무것도 안나오네요...
- 해결됨C 프로그래밍 - 입문부터 게임 개발까지
함수 데터의 자료형
안녕하세요! 제가 오늘 C언어 함수에 대해서 처음 공부를 하게 되었는데요, int add(int a, int b)처럼 반환할 데이터의 자료형, 그리고 인자도 모두 선언한다면 둘의 자료형은 항상 같아야하나요? 제 생각에는 같아야하는게 맞는 것 같은데, 왜냐하면 받은 인자들로 값을 만들어내면 당연히 그 반환값도 자료형이 같을 것 같아서요.. 제 말이 맞는건가요? 답변주시면 감사하겠습니다:)
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
Visual Studio가 안꺼집니다..
f5를 눌렀는데 실행이 되지않습니다...ㅠㅠ Visual Studio는 종료자체가 되지않습니다... 종료버튼을 누르면 '솔루션을 닫으려면 빌드를 중지해야합니다.' 창만 뜨고 종료가 되지않습니다... #include <stdio.h> #include <time.h> // 10마리의 서로 다른 동물 (가 카드 2장씩) // 사용자로부터 2개의 입력값을 받아서 -> 같은 동물 찾으면 카드 뒤집기 // 모든 동물쌍을 찾으면 게임 종료 // 총 실패 횟수 알려기 int arrayAnimal[4][5]; // 카드 지도(20장) int checkAnimal[4][5]; // 뒤집힌 여부 확인 char * strAnimal[10]; // 동물 이름 void initAnimalArray(); void initAnimalName(); void shuffleAnimal(); int getEmptyPosition(); int conv_pos_x(int x); int conv_pos_y(int y); void printAnimals(); void printQuestiom(); int main(void) { srand(time(NULL)); initAnimalArray(); initAnimalName(); shuffleAnimal(); int failCount = 0; // 실패 횟수 while (1) { int select1 = 0; // 사용자가 선택한 첫번째 수 int select2 = 0; // 사용자가 선택한 두번째 수 printAnimals(); // 동물 위치 출력 printQuestiom(); // 문제 출력 (카드지도) printf("뒤집을 카드를 2개 고르세요. : "); scanf_s("%d, %d", &select1, &select2); if (select1 == select2) //같은 카드 선택시 무효 continue; // 좌표에 해당하는 카드를 뒤집어 보고 같은지 안같은지 확인 // 정수 좌표를 (x,y) 로 변환 int firstSelect_x = conv_pos_x(select1); int firstSelect_y = conv_pos_y(select2); int secondSelect_x = conv_pos_x(select1); int secondSelect_y = conv_pos_y(select2); // 같은 동물인 경우 if ((checkAnimal[firstSelect_x][firstSelect_y] == 0 && checkAnimal[secondSelect_x][secondSelect_y] == 0) //카드가 뒤집히지 않았는지 && (arrayAnimal[secondSelect_x][secondSelect_y] == arrayAnimal[secondSelect_x][secondSelect_y]) // 두 동물이 같은지 ) { printf("\nn\n빙고! : %s 발견\n\n", strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); checkAnimal[firstSelect_x][firstSelect_y] = 1; checkAnimal[secondSelect_x][secondSelect_y] = 2; } // 다른 동물인 경우 else { printf("\n\n틀렸거나, 이미 뒤집힌 카드 입니다\n"); printf("%d : %s\n", select1, strAnimal[arrayAnimal[firstSelect_x][firstSelect_y]]); printf("%d : %s\n", select2, strAnimal[arrayAnimal[secondSelect_x][secondSelect_y]]); printf("\n\n"); failCount++; } if (foudAllAnimal() == 1) { printf("\n\n축하합니다 ! 모든 동물들을 다 찾았네요 \n"); printf("지금까지 총 %d 번 실수하였습니다\n", failCount); break; } } return 0; } void initAnimalArray() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { arrayAnimal[i][j] = -1; } } } void initAnimalName() { strAnimal[0] = "원숭이"; strAnimal[1] = "하마"; strAnimal[2] = "강아지"; strAnimal[3] = "고양이"; strAnimal[4] = "돼지"; strAnimal[5] = "코끼리"; strAnimal[6] = "기린"; strAnimal[7] = "낙타"; strAnimal[8] = "타조"; strAnimal[9] = "호랑이"; } void shuffleAnimal() { // ㅁㅁㅁㅁㅁ // ㅁㅁㅁㅁㅁ // ㅁㅁㅁㅁㅁ // ㅁㅁㅁㅁㅁ // ㅁㅁㅁㅁㅁ for (int i = 0; i < 10;i++) { for (int j = 0; j < 2; j++) { int pos = getEmptyPosition(); int x = conv_pos_x(pos); int y = conv_pos_y(pos); arrayAnimal[x][y] = i; } } } // 좌표애서 빈 공간 찾기 int getEmptyPosition() { // ㅁㅁㅁㅁㅁ 0 1 2 3 4 -> 0 0 0 0 0 // ㅁㅁㅁㅁㅁ 5 6 7 8 9 -> 1 1 1 1 1 // ㅁㅁㅁㅁㅁ 10 11 12 13 14 -> 2 2 2 2 2 // ㅁㅁㅁㅁㅁ 15 16 17 18 19 -> 3 3 3 3 3 while (1) { int randPos = rand() % 20; // 0~19 사이의 숫자 반환 // 19 -> (3,4) int x = conv_pos_x(randPos); int y = conv_pos_y(randPos); if (arrayAnimal[x][y] == -1) { return randPos; } } return 0; } int conv_pos_x(int x) { //19 -> (3,4) return x / 5; } int conv_pos_y(int y) { return y % 5; // y를 5로나눈 나머지 값 } void printAnimals() // 동물 위치 출력 { // ㅁㅁㅁㅁㅁ 1 1 2 2 3 // ㅁㅁㅁㅁㅁ 4 4 5 5 3 // ㅁㅁㅁㅁㅁ // ㅁㅁㅁㅁㅁ printf("\n========== 이건 비밀인데.. 몰래 보여줍니다 ==========\n\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { printf("%8s", strAnimal[arrayAnimal[i][j]]); } printf("\n"); } printf("\n=================================================\n\n"); } void printQuestiom() // 문제 출력 (카드지도) { printf("\n\n(문제)\n"); int seq = 0; //seq //checkAnimal // ㅁㅁㅁㅁㅁ 0 1 2 3 4 0 0 0 0 0 // ㅁㅁㅁㅁㅁ 5 6 7 8 9 1 0 0 0 1 // ㅁㅁㅁㅁㅁ 10 11 12 13 14 0 0 1 0 0 // ㅁㅁㅁㅁㅁ 15 16 17 18 19 1 0 0 1 1 for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { // 카드를 뒤집어서 정답을 맞췄으면 '동물이름' if (checkAnimal[i][j] != 0) // != 는 ≠ { printf("%8s", strAnimal[i][j]); } // 아직 뒤집지 못했으면 (정답을 못맞췄으면) 뒷면 -> 위치를 나타내는 숫자 else { printf("%8d", seq); } } } } int foudAllAnimal() { for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { if (checkAnimal[i][j] == 0) { return 0; } } } return 1; // 모두 다 찾음 }
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
엔터치면서 정리할때
arr2,arr3,arr4 값들을 보기편하게 정리할때 ,(컴마)뒤에 엔터를 치면서 정리하면 자동으로 tap처리가 안되는데 어떻게 해결할수있나요...?
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
*char 선언 이유
char선언에 포인터를 붙이는 이유가 무엇인가요?
- 미해결C 프로그래밍 - 입문부터 게임 개발까지
"%[^n]s" 사용 시 입력은 가능하나. 출력이 아예 되지 않습니다ㅠㅠ
char crime[256]; printf("범죄 명은 무엇인가요?"); scanf_s("%[^n]s", crime, sizeof(crime)); printf("^n죄 명 : %s\n", crime); printf 뒤에 역슬래시n을 넣어도 동일한 현상이에요ㅜ