컴퓨터를 공부하고자 마음먹은지 N일차

[10일차](홍정모의따배c)반복문-2 본문

🖥C

[10일차](홍정모의따배c)반복문-2

졸린새 2020. 9. 17. 22:42
728x90

[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;
}

Comments