[35일차](홍정모의따배c)숫자와 문자를 섞어서 입력받기, void함수는 뭐에요?
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.
- 문제
- 교수님코드
#include <stdio.h>
void display(char cr, int lines, int width);
int main()
{
char c;
int rows, cols;
while (1) {
scanf("%c, %d, %d", &c, &rows, &cols);
display(c, rows, cols);
if (c == '\n')
break;
}
return 0;
}
이러한 코드에서
무슨글자를 몇줄 몇글자 입력할지
정해주는 함수를 만들어라 전에 배운걸 토대로!
10일차 참고하기
10일차를 보면 int를 사용해서 함수를 따로 선언하는걸로 보인다.
그런데 void와 차이점은 도대체 어떤게 있을까,
일단 void를 활용해 함수를 만들어보기로 한다.
일단 void에 대한 이해가 필요했다.
구글검색 ㄱ ㄱ
int와 같이 반환값을 받는게아닌
반환값을 받지않는 함수를 말한다. 만약 파라메타 리스트를 사용했을때
void는 파라미터를 가리키질 않는다 이게
도대체 뭔소리냐?
어떻게 사용하는지부터 살펴보자
- void는 반환되는 자료형 함수로써 활용된다
- void는 척도함수로써 활용된다
- void는 포인터선언으로 활용된다.
이렇게 해서는 어떻게 정확히 활용되는지 잘모른다
활용사례를 살펴보자
fun이라고 선언한 함수안속에 int num을 미리 가져간후
num을 출력하는 함수로 만들어준다
그래서 a=5라고 미리 말한후
a의 num값을 반환하는 코드다
int와 달리 반환값을 받지 않으니 잘 생각해보아야한다
이 맥락에 맞게
코드를 짜보자
!!
- 오랜만의 내 코드
#include <stdio.h>
void display(char cr, int lines, int width);
int main()
{
char c;
int rows, cols;
while (1) {
scanf("%c, %d, %d", &c, &rows, &cols);
display(c, rows, cols);
if (c == '\n')
break;
}
return 0;
}
void display(char cr, int lines, int width)
{
while(lines-- > 0)
{
while(width-- >0)
{
printf("%c", cr);
}
printf("\n");
}
}
원하는결과가 나오지않았다.
수정을 여러번 겪었지만
강의를보자
- 교수님코드
void display(char cr, int lines, int width)
{
int row, col;
for (row = 1; row <= lines; row++)
{
for (col = 1; col <= width; col++)
putchar(cr);
putchar('\n');
}
}
putchar에 cr을 넣어 출력한점이 달랐으며
쉬운확인을 위해 row와 col을 선언했다.