#include int main() { int a, b, c; scanf_s("%d%d%d", &a, &b, &c); if (a > b) { if (a > c) printf("a"); else if (a = c) printf("ac"); else printf("c"); } else if (a = b) { if (a > c) printf("ab"); else if (a = c) printf("abc"); else printf("c"); } else { if (b > c) printf("b"); else if (b = c) printf("bc"); else printf("c"); } } 숫자 3개를 입력 받아서 가장 큰 수를 출력하는 건데 수가 같을 경우를 한번 고려해봐서 써봤어요. 근데 이상하게 abc만 나와요. 왜 이런거죠?
printf("c"); 는 문자 그대로의 c를 출력하는것이고, 입력받은 수 a 또는 b 또는 c 를 출력하실려면 printf("%d", a); 혹은 printf("%d", b); 혹은 printf("%d", c); 라고 작성 하셔야 합니다. (+) scanf_s를 일부러 쓰려고 하신거면 어쩔수 없지만 빈 프로젝트를 만드실때 마법사에서 SDL(Security Development Lifecycle)검사(C)를 헤제하시고 만드시면 scanf를 쓰셔도 에러가 나지 않습니다.
질문이 있는데요.. scanf("%d%d%d", &a, &b, &c) 하는 것 처럼 cin >> a, b, c 이렇게 쉼표로 해봤는데 오류가 났고, cin>>a; cin>>b; cin>>c; 처럼 나눠서 쓰니깐 이떄는 잘 실행이 되던데... 무엇이 잘못되서 연속으로 입력하면 안되는지 궁금합니다..!
코드 수 가 줄여지는거보다 컴퓨터가 연산하는 수를 줄이는게 좋습니다(&&을쓰면 결국 판단이 그 만큼 추가됩니다 &&을 쓴경우 if문이 하나여도 판단횟수가 추가됩니다) David Bang님의 방법은 코드 줄 수 만 줄여지는 방법입니다. 물론 다른개발자나 팀원들이 보기에는 가독성이 더 좋을수도있겠죠
나이도 어리신거 같은데 진짜 대단하시다.... 존경스럽다
진짜 '컴퓨터는 삼중으로 된 연산자를 알아볼 수 없다' 가 핵심이었습니다 감사합니다ㅠㅠ
복학해서 c언어 기본부터 복습하고있는데 덕분에 정말 도움이됩니다 감사합니다 ㅠㅠ
저희 학교 교수님보다 설명을 쉽게 해주셔서 이번 과제 무사히 넘길수 있을것같습니다ㅠㅠ 감샇ㅂ니다.....
진짜 컴퓨팅사고력시간에 수업안듣고 멍때리고 놀던시간이 많아서 차근차근1강부터 보고있는데 머리에 쏙쏙들어오고 재밋네요 감사합니다!
7:32 세미콜론 생략가능한 조건
세미콜론이 아니라 중괄호입니다!
if 안에 중괄호를 안 넣는 편이 가독성이 좋은 건가요?
상황에 따라 다릅니다. 그런데 if문 안이 1줄이고 굉장히 짧을 때는 중괄호를 안 쓰는 게보통 깔끔해 보이고 코드 전체의 줄 개수도 줄일 수 있습니다..
@@두들낙서 답변 감사합니다. 감사히 잘 보고 있습니다.ㅎㅎ
유익한 강좌가 여기 있었네요 감사합니다 ^^
if문 쓰는 방법에 대해서 잘 배웠습니다.
안녕하세요 두들님
최대값 입력을 11자리 숫자 들을 입력 하면 이상한 숫자가 뜨는데..
이건 왜그런지 알수 있을까요? 12345678912
C++에서 인식할 수 있는 최대 수가 2147483647인걸로 알고 있습니다.
#include
int main() {
int a, b, c;
scanf_s("%d%d%d", &a, &b, &c);
if (a > b) {
if (a > c)
printf("a");
else if (a = c)
printf("ac");
else
printf("c");
}
else if (a = b) {
if (a > c)
printf("ab");
else if (a = c)
printf("abc");
else
printf("c");
}
else {
if (b > c)
printf("b");
else if (b = c)
printf("bc");
else
printf("c");
}
}
숫자 3개를 입력 받아서 가장 큰 수를 출력하는 건데 수가 같을 경우를 한번 고려해봐서 써봤어요.
근데 이상하게 abc만 나와요. 왜 이런거죠?
printf("c"); 는 문자 그대로의 c를 출력하는것이고,
입력받은 수 a 또는 b 또는 c 를 출력하실려면
printf("%d", a); 혹은
printf("%d", b); 혹은
printf("%d", c); 라고 작성 하셔야 합니다.
(+) scanf_s를 일부러 쓰려고 하신거면 어쩔수 없지만
빈 프로젝트를 만드실때 마법사에서 SDL(Security Development Lifecycle)검사(C)를 헤제하시고 만드시면 scanf를 쓰셔도 에러가 나지 않습니다.
값 안뜨고 문자 뜬건 의도한 거에요. 그리고 이상하게 scanf_s만 됐었는데 왜그런지 알게됐네요 감사해요
덕분에 많이 배우고 있습니다! 감사합니다 ㅎㅎ
질문이 있는데요.. scanf("%d%d%d", &a, &b, &c) 하는 것 처럼 cin >> a, b, c 이렇게 쉼표로 해봤는데 오류가 났고, cin>>a; cin>>b; cin>>c; 처럼 나눠서 쓰니깐 이떄는 잘 실행이 되던데... 무엇이 잘못되서 연속으로 입력하면 안되는지 궁금합니다..!
+장재혁 cin은 기본적으로 함수가 아니기 때문에 변수를 분리해서 쓸 때 쉼표 대신에 >>를 씁니다. 잘못되었다기보단 cin을 만들 때 약속을 그렇게 한거죠.
넘나 감사합니다
지금 너무 나도 열심히 열공하고 있습니다. 혹시 따로 카페 같은건 없나요.???
네 유튜브 외에 다른 커뮤니티를 운영하고 있지는 않습니다.
세미클론에서 중괄호 생략가능이라는건 c++ 만 가능한건가요 아님 c에서 되나요?
그리고 c에서 된다면 모든 문장에서 사용가능한가요?
C에서도 모든 문장에 사용 가능한 걸로 알고 있습니다.
감사합니다
문장 줄이는 거 대박ㅋㅋ
본거 확인
감사합니다ㅠㅠ
4개짜리는 많이 복잡해지나요 ...
if((a>b) && (a>c)) 이렇게 하면 더 줄여지지 않나요?
if((a>b) && (a>c))
printf("%d
", a);
else if((a>b) && (a
코드 수 가 줄여지는거보다 컴퓨터가 연산하는 수를 줄이는게 좋습니다(&&을쓰면 결국 판단이 그 만큼 추가됩니다 &&을 쓴경우 if문이 하나여도 판단횟수가 추가됩니다)
David Bang님의 방법은 코드 줄 수 만 줄여지는 방법입니다. 물론 다른개발자나 팀원들이 보기에는 가독성이 더 좋을수도있겠죠