c 기초 질문

rudrbgus의 이미지

#include
void smile(void);

int main(void)
{
smile();smile();smile();
smile();smile();
smile();
}
void smile(void)
{
printf("Smile!");
}

저는
smile!smile!smile!
smile!smile!
smile!

이라고 작성하고싶은데 어떻하면 좋죠?

 의 이미지

smile함수만 고쳐서 그렇게 되도록 만들기는 약간 까다롭겠지만요.
일단 간단히 한 번 해봤습니다.

#include <stdio.h>
 
void smile(void);
 
int main(void)
{
	smile();smile();smile();
	smile();smile();
	smile();
}
 
void smile(void)
{
	static unsigned int n = 1, i = 2;
	printf(i?(--i,"smile!"):(i=n--,"smile!\n"));
}
rudrbgus의 이미지

근데 저는 static 하고 i? --i 이런거는 잘몰르겟네용 ㅎㅎ

skan1543의 이미지

int main(void)
{
smile();smile();smile();
printf("\n");
smile();smile();
printf("\n");
smile();
}