for에서 막힘
N 줄인 삼각형을 출력한다. 단, 사용자로 부터 임의의 N 을 입력 받는다. 아래는 N = 3 일 때의 출력 예시 이다.
* *** *****#include <stdio.h>
int main() {
int n;
scanf("%d",&n);
int i,j,k;
for (i=1; i<n+1; i++) {
for(k=0; k<n-i; k++) {
printf(" ");
}
for(j=0; j<(2*i-1); j++) {
printf("*");
}
printf("\n");
}
return 0;
}
이거 풀이해놓은것도 이해하는데 좀 걸림
지금은 이해했던거라그런지 금방 이해되긴하는데
식을 내가적기시작하면 개판남
중괄호도 어디쳐야될지 헷갈리고
걍 넘어가야될지 좀더 파야될지 모르겟음
중괄호 헷갈린다는건 정확히 어떤점이 헷갈리는거임?
각 for문 반복횟수가 정해진 이유를 설명해줄 수 있음?
printf쓸떄 특히 헷갈림 걍 머리하얘짐
expression과 statement에 대해 먼저 설명해줄게. expression은 평가될 수 있는 구문(statement)야. 표현식이라고 하지. 이런애들은 변수에 대입하거나 하는게 가능해. a = 1+2; 했을때 1+2는 표현식이지
반복횟수는 저문제에서 값이 3이면 2번반복해야되니까 그식만든거아님? 뭘묻는건지 이해못하겟음
그런데 표현식이 아닌 구문은 변수에 넣을수없겠지? a = if(1){} 이런게 안되듯이말야
표현식이 아닌 구문은 기본적으로 {}가 붙는거고, 표현식은 안붙어. 구문도 한줄을 작성할거라면 생략할수있지만 헷갈릴수있으니 처음엔 그냥 다 붙이자.
질문의 요지는, 네가 어떤 논리를 작성해야할지 제대로 알고있느냐가 궁금해서였음. 네가 식을 적기 시작하면 개판난다고 했으니
처음엔 여는중괄호를 다음줄로 띄우는게 도움이 될 수도 있음. 괄호짝 맞춰보기 쉽거든
개판나는건 집중이안되서그런거같음 n번반복하려면 어떤식이나와야할지 생각하다가 갑자기 다른것도 해결해야되는데 하면서 순서는어떻게하지 하고 개판됨 답변 잘해주는거 엄청고마움
그러면 전체 문제를 나눠서 서브태스크로 만들어놓고 그걸 정확히 정리해두는건 어때? 보통 저런건 그 서브태스크들을 순차적으로 처리하면 됨. 다른거 신경 동시에 쓸 필요 없다
지금 써보면서 약간 감잡히는거같아서 마지막댓글은 나중에도안되면 해볼게 답변감사함
앞으로 더 복잡한 일들을 처리해야할때 좋은방법임
괄호안은 보통 구현하는 부분임 이런건 그냥 시간지나면 박힘 아니면 다른 언어 for문 보면서 어떤식으로 굴러가는게 for문인지 이해하는것도 좋음
ㅇㅇ 걍 처음엔 답이랑 비교해보면서 이해한다음 해봐야겟다 ㄳ
이건 C언어의 문제가 아니라 사고의 문제라서... 잘 모르면 그냥 펜으로 써보는게 좋음.
ㄳ