문제로 배우는 C언어

문제로 배우는 C언어

(12개의 수강평)

495명의 수강생
C알고리즘
11,000원
지식공유자 · 김태원
66회 수업· 총 8시간 52분수업
평생 무제한 시청
수료증 발급 강의
수강 난이도 입문
$tudent 프로필

48. 소수찾기 $tudent 28일 전
제공된 예시 코드로는 1도 소수로 포함되어 결과가 출력됩니다. 1은 검사하지 않고 무시하거나, 무조건 false로 반환해야하는 로직이 추가돼야 할 것 같습니다. 제가 놓친 부분이 있다면 조언 부탁드립니다.

1
hxmkim 프로필

2차원 배열 출력3번 문제 질문입니다. hxmkim 1달 전
int i, j, k = 1, l = 2, m; int a[6][6]; for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { a[i][j] = 0; // 대각선 숫자 if (i == j) { a[i][j] = k; k = k + 2; } // 3행 이전 if (i < 5 / 2) { if (j == 4 - i) { for (m = 0; m <= 1; m++) { a[i][j] = a[m][m] + 1; } } } // 3행 이후 else if (i > 5 / 2 ) { if (j == 4 - i) { // 문제점이라고 생각되는 부분 a[i][j] = a[3][3] -1; } } } } // 출력 for (i = 0; i < 5; i++) { for (j = 0; j < 5; j++) { printf("%7d", a[i][j]); } printf("\n"); } 출력 결과입니다. 1 0 0 0 2 0 3 0 4 0 0 0 5 0 0 0 -1 0 7 0 6 0 0 0 9 일단 숫자 입력은 보류하였구요, 순서는 1. 0으로 모두 채우고 2. 홀수 숫자 대각선으로, 3. 그 숫자에 +1을 더하는 것입니다. 1행~2행은 [0,0] + 1 = [0,4], [1,1] +1 = [0,3] 방법으로 +1을 해주었습니다. 질문은 3~4행에서 홀수 대각선 숫자를 -1해주려고 하는데 [3,3] 에서 각각 바로 7로 바로 인식되지 않고, 0다음 7로 인식됩니다. [4,4]에서도 9로 인식이 안되고, 0으로 인식됩니다. 수정해야 할 부분이 궁금해요ㅜㅜ

1
dev_익 프로필

배열의 역순 질문입니다. dev_익 1달 전
// for문을 거꾸로 돌리지 않고 출력해보고 싶어서 j=0; 일때 n=5; 이고 해서 // (j-(n-1) 이런식으로 배열을 작성해봤는데요 0-(5-1) =4 이고 j가 ++되니깐 4,3,2,1,0이렇게 줄어들면 역순으로 출력되지 // 않을까 했는데 쓰레기값이 출력되더라구요 혹시 왜 그런지 알수있을까요? int main() { int n,i =0,j=0; int arr[101]; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } for (j = 0; j < n; j++) { printf("%d\n", arr[(j-(n-1))]); } }

2
dmsgkrkt1 프로필

48. 소수 찾기 질문있습니다! dmsgkrkt1 1달 전
알려주신코드 그대로 작성해서 실행시켜봤는데   식별자 "true"이 정의되어있지 않습니다. 식별자 "false"이 정의되어 있지 않습니다. 식별자 "bool"이 정의되어 있지 않습니다. 구문 오류: 식별자 'isPrime' 구문 오류: '<parameter-list> 구문 오류: ';' 'isPrime'이 정의되지 않았습니다.  이렇게 계속 뜨면서 실행이 안되는데 뭐가 문제인지 궁금합니다 실행시키는 프로그램은 Visual Studio Community 2019 입니다.

2
dev_익 프로필

인프런에 문의해야 하는지 강사님에게 문의해야하는지 잘모르겠는데 강의 재생이 안됩니다. dev_익 2달 전
인프런에 문의해야 하는지 강사님에게 문의해야하는지 잘모르겠는데 강의 재생이 안됩니다. it취업을 위한 알고리즘 문제풀이를 들었는데 강의가 설명이 잘되어있어서  문제로 배우는 C언어도 결제를 했는데,  it취업을 위한 알고리즘 문제풀이(with C/C++)은 재생이 잘되는데  문제로 배우는 C언어는 소리만 재생이되네요? 저만 그런건지 지금 시스템에 문제가 있는건지 문의드립니다.

4
dmsgkrkt1 프로필

1차원 배열 , 2차원 배열 질문이요! dmsgkrkt1 3달 전
1차원 배열에서  int a[3] ; printf("%d"\n, a[0]); return 0; 이 결과값이 0가 나와야 되는거 아닌가요? int a[3][2]; printf("%d"\n, a[0]a[1]); return 0; 이 결과 값도 0가 나와야 되는거 아닌가요?  계속 -858993460 이런식으로 나오는데 .. 배열선언하고 인덱스 안에 아무것도 안넣으면 0로 되어있는걸로 알고있는데  44번문제에서 선생님의 답도 그대로 실행시켜보니 0대신 -858993460이 들어가서 나옵니다. 제가 알고 있는 개념이 잘못된 건가요?

2
tmdal0303 프로필

최솟값구하기 tmdal0303 3달 전
안녕하세요! 강의 전에 제가 먼저 짜봤던 코드는  #include<stdio.h> int main(){ int a,b,c; scanf("%d %d %d",&a,&b,&c); if(a<b&&b<c){ printf("%d",a); } else if(b<a&&a<c){ printf("%d",b); } else { printf("%d",c); } return 0; } 이였는데요, 선생님께서 주신 예시문 중 입력예제 1,3은 정상으로 최솟값이 출력이 되었으나 예시문 2는 13이 아닌 17이 출력되었습니다. 저의 코드에서 어떤 문제점이 있는지 모르겠습니다 ..ㅠㅠ 

1
임규범 프로필

일곱 난쟁이 임규범 3달 전
#include<stdio.h> int arr[10]; int main(){ int i, j, k, tmp=0, sum=0; for(i=0; i<9; i++){ scanf("%d", &arr[i]); tmp=tmp+arr[i]; } for(i=0; i<9; i++){ for(j=0; j<9; j++){ if(i==j) continue; sum=tmp-arr[i]-arr[j]; if(sum==100) break; } } for(k=0; k<9; k++){ if(k==i || k==j) continue; printf("%d ", arr[k]); } return 0; } 어느 부분이 잘못되었는지 모르겠어서 질문드립니다

1
tmdal0303 프로필

범위 질문드립니다! tmdal0303 3달 전
#include<stdio.h> int main(){ int height; scanf("%d",&height); if(120<=height<=150){ printf("YES"); } else{ printf("NO"); } return 0; }  제가 미리 짜본 코드였는데 120<=height<=150이 if문 조건식에 들어오지 못하는 이유는 무엇인가요? 제가 무언가를 착각하고 있는걸까요 ㅠㅠ  코드 결과는 어떤 수를 집어넣어도 YES가 출력되었었습니다..

1
pele0607 프로필

{}의 사용유무 pele0607 3달 전
#include<stdio.h> int main(){ int n,i=1; scanf("%d", &n); while(i<=n){ printf("%d ",i); i++; } return 0; } 제가 코드를 처음에 작성할때 while문 뒤에 {}를 작성을 안하고  컴파일 해서 돌려봤는데 1이 무한번 반복도더라고요...다시 { }을 넣으니까 제대로 되고요. 이유가 뭔지 알수있을까요??ㅜㅜ

2
pele0607 프로필

부등호 방향 질문 pele0607 3달 전
#include<stdio.h> int main(){     int a, b, c, max, tot;     scanf("%d %d %d", &a, &b,&c);     tot=a+b+c; if(a>b) max=a;     else max=b;     if(max<c);     max=c; if(max<(tot-max)) printf("YES\n"); else  printf("NO\n"); return 0; } 제가 코드를 이렇게 썼는데 13 33 17을 입력하면 NO가 나와야 되는데 YES가 출력이 됩니다ㅜㅜ.  선생님이 하신거랑 다른게  문자의 순서만 달리하고 부등호는 그에 맞게 설정을 잘한것같은데 왜 그럴까요??

2
최병호 프로필

제가 푼 방법이랑은 좀 다르게 설명을 해주셨는데.. 이렇게 풀어도 될까요? 최병호 3달 전
#include <stdio.h> int main() {   int a,b;   double N;   scanf("%d", &a);   N = a/12.0;  //      필요한 다스 수=사람수/12   178/12=15...   N = N + 0.999999;   N =(int)N;   printf("%f\n", N);   b = N;   printf("%d", b);   return 0; }

1
Hyungjune Choi 프로필

c언어 자료구조/알고리즘 강의는 올려주실 생각이 없으신가요 ㅠㅠ? Hyungjune Choi 3달 전
C++ 이랑 파이썬 은 있는데... 똑같은 문제나 양식이여도 괜찮으니 C언어로도 강의만들어 주셨음 좋겠습니다 ㅠㅠ

1
임규범 프로필

24. 최솟값 구하기 임규범 3달 전
#include <stdio.h> int main(){ int a, b, c, d, e, f, g, i=0; scanf("%d %d %d %d %d %d %d", a, b, c, d, e, f, g); while(1){ i++; if(i==a) i=a; if(i==b) i=b; if(i==c) i=c; if(i==d) i=d; if(i==e) i=e; if(i==f) i=f; if(i==g) i=g; break; } printf("%d", i); return 0; } 이 코드는 왜 안되나요?

2
pipopin z 프로필

38.자리 찾기문제에서 배열의 크기에 질문이 있습니다. pipopin z 4달 전
int arr[] 배열 선언할때 main 함수 바깥 맨위에서 선언을 하면 int arr[2]; 처럼 아무리 작은 크기로 배열을 선언해도 7 11 15 19 23 27 32 36 21 콘솔에서 이런식으로 배열크기를 초과하는 입력을하면  11 15 19 21 23 27 32 36 출력되서 정상작동되는데 그 이유가 궁금합니다. main 함수안에서 int arr[] 배열을 선언하면 그렇게 나오지가 않습니다. 그리고 arr 배열을 main함수 안에서 int arr[4];라고 선언하고  입력예제  5 1 3 7 9 15 8 를 입력하면 출력이 정상적으로 되는데 애초에 선언된 크기인 arr[4]를 넘어가는 입력이 들어왔는데 어떻게 '1 3 7 8 9 15 '   6개의 숫자가 정상출력되는데 이유가 궁금합니다. 그리고 int arr[7];라고 선언하고 입력예제 7 11 15 19 23 27 32 36 21 하면 이건 또 출력이 정상적으로 되지않습니다. 이 경우에는 할당된 배열크기가 작아서 출력이 선언된 배열크기를 넘어가 제대로  출력 안된다고 생각이 되는데 왜 저 int arr[4]인 경우에는 할당크기를 넘어가는데도 출력이 정상적으로 되는지 이해하기가 어렵습니다.

1
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스