[10일차](홍정모의따배c)반복문-2
*본 강의수기는 교수님의 모든 ppt나 코드 화면을 붙인게 아닙니다. 따로 출처 표시나 과제표시
안한 모든 코드와 사진자료의 출처는 본 강의의 교수님 입니다.
정리는 다시한번 제가 보기위함과 어떤강의인지 알려드리는 것이고
제가 적은건 이해를 돕기 위한 부연설명과 제가 이해한 몇개의 중심적인 내용이 다소
생략이 되었습니다. 이 수기를 통해 공부하려 하지말고 흥미로운 내용이라면
'인프런- 홍정모의 따라하며 배우는c' 과정을 수강하시길 바랍니다.
전날하던거 이어서
- 문제3
- 내코드
#include <stdio.h>
int main()
{
char inputchar, startchar;
int repeatcount;
printf("Input any Character :");
scanf("%c", &inputchar);
for(repeatcount = 0; repeatcount <= inputchar - 'A' ; repeatcount++)
{// 가로로 세로로 같다. 그러면 결국 한 줄에출력하는문자 수랑 라인을 첨프하는 횟수랑 같아야 한다
//결국'A'부터 입력한 문자까지만 출력하게 되기때문에 입력한 문자에서 'A'를
//뺀값만큼 반복한다.
for(startchar = 'A' + repeatcount; startchar <= inputchar ; startchar ++){
//출력하는값은 스타트캐릭터 'A'에 반복수만큼 더한 값을 출력한다. 물론 스타트
//캐릭터의 성장또한 멈추지않는다 다만 인풋캐릭터까지가 그 성장점이다
//그래서 업데이트칸은 공백
printf("%c", startchar);
}
printf("\n");
}
return 0;
}
진짜 문제 간단하게 해결한것처럼
보이겠지만
거의 1시간반고민한거같다
for루프를 배열과 함께 사용하기
- 문제
숫자를 다섯개 입력하는 프로그램을 만들고
입력이끝나면 합을 구하는 프로그램을 for문과 배열을 이용해 만들어라
- 나의 코드
#include <stdio.h>
#define SIZE 4 //i
int main()
{
int my_arr[SIZE];
int i;
int sum;
for (i = 0; i <= SIZE; i++){
printf("Enter 5 number");
scanf("%d", &my_arr[i]);
sum = my_arr[0] + my_arr[1] + my_arr[2] + my_arr[3] + my_arr[4];
}
printf("sum = %i", sum);
return 0;
}
효율적인 코드는 아니지만 배열숫자의 합을 어떻게 합쳐야할지 모르겠다
- 교수님 코드
#include <stdio.h>
#define SIZE 5
int main()
{
int number[SIZE];
int sum = 0;
int i;
printf("Enter %d numbers :", SIZE);
for (i = 0; i < SIZE; ++i)
scanf("%d", &number[i]);
for (i = 0; i < SIZE; ++i)
sum += number[i];
printf("Sum = %d\n", sum);
return 0;
}
루프 안에서 함수의 반환값 사용하기
숫자 하나씩 입력해서 제곱 만들어주는 프로그램
- 교수님코드
#include <stdio.h>
int compute_pow(int base, int exp);
//coupute_pow라는거 쓸테니 신경쓰지말고 나중에 찾으면돼!
int main()
{
int base; exp;
while (scanf("%d %d", &base, &exp) == 2)
{
result = compute_pow(base, exp)
printf("Result = %d\n", result);
}
return 0;
}
int compute_pow(int base, int exp)
{
int i, result;
//아예다른 스코프라 한번 더 선언해줘야 한다.
result = 1;
for (i = 0; i < exp; ++i)
result *= base;
return result;
}