๐Ÿ’ก

๋”ฐ๋ฐฐ์”จ 6.10 ~ ๋ณธ๋ฌธ

๋”ฐ๋ฐฐ์”จ

๋”ฐ๋ฐฐ์”จ 6.10 ~

์•„์˜ณ์ด 2021. 1. 12. 19:12

6.10 ๋‹ค์–‘ํ•œ ๋Œ€์ž… ์—ฐ์‚ฐ์ž๋“ค (๊ทธ๋ฆฌ๊ณ  ์–ด์…ˆ๋ธ”๋ฆฌ ์ฝ”๋“œ ํ™•์ธ๋ฒ•)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
    /*
        +=, -=, *=, /=, %=
    */
    int i = 1024;

    i = i + 10;
    i += 10;

    i %= 4;

    i = i * (1 + 2);
    i *= 1 + 2;
    i *= (1 + 2);   //  Check precedence

    for (int i = 0; i < 10; i++)
        ;

    return 0;
}

์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋’ค์—์„œ 2๋ฒˆ์งธ๋ฅผ ๋งค์šฐ ๋‚ฎ๋‹ค

i += 10;๋กœ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด 'i๋Š” i์— 10์„ ๋”ํ•œ๋‹ค' ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ž

 

 

 

6.11 ์ฝค๋งˆ ์—ฐ์‚ฐ์ž

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	for (int n = 1, nspr = n * n; n < 10; n++, nspr = n * n)
		printf("%d %d\n", n, nspr);	//	commas in printf() are not comma operator but separator

	int i, j;
	i = 1;
	i++, j = i;	//	comma is a sequence point
	printf("%d %dn", i, j);	//	2 2
	
	int x, y, z;	//	์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ ์ฃผ์˜
	z = x = 1, y = 2;
	print("x=%d, y=%d, z=%d \n", x, y, z);		//	1 2 1
	z = (x = 1), (y = 2);
	print("x=%d, y=%d, z=%d \n", x, y, z);		//	1 2 1
	z = ((x = 1), (y = 2));
	print("x=%d, y=%d, z=%d \n", x, y, z);		//	1 2 2

	//int my_money = 123,456;	//	error
	int my_money = (123, 456);
	prinf("%d\n", my_money);	//	456
	
	return 0;
}

์„œ๋กœ๋‹ค๋ฅธ ํ˜•์‹ ์ง€์ •์ž๋ผ๋ฆฌ๋Š” ์‚ฌ์šฉ X

 

 

 

6.12 ์ œ๋…ผ์˜ ์—ญ์„ค ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜ˆ์ œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	/*
		Simulation of a Moving Object

		- Speed = 1.0 m/s
		- dt = 1.0 s
		- Distance traveled during dt = Speed * dt

		- Step 1 : 1.0 m/s * 1.0 s = 1.0 m, dist = 1.0 m
		- Step 2 : 1.0 m/s * 1.0 s = 1.0 m, dist = 1.0 m + 1.0 m = 2.0 m
		- Step 3 : 1.0 m/s * 1.0 s = 1.0 m, dist = 1.0 m + 1.0 m + 1.0 m = 3.0 m
		- ... ...
	*/
	const double speed = 1.0;
	const unsigned repeat_max = 10;

	double dt = 1.0;
	double time = 0.0;		//	Elapsed time
	double dist = 0.0;		//	Distance

	for (unsigned i = 0; i < repeat_max; i++)
	{
		dist += speed * dt;
		time += dt;

		printf("Elapsed time = %.10fs, Distance = %.10fm\n ", time, dist);
	
    	dt *= 0.5;
    }

	return 0;

}

 

 

 

6.13 ํƒˆ์ถœ์กฐ๊ฑด ๋ฃจํ”„ do while

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	const int i = 117;
	int guess = 0;
	
	/*
	printf("Enter secret code : ");
	scanf("%d", &guess);

	while (guess != i)
	{
		printf("Enter secret code : ");
		scanf("%d", &guess);
	}
	*/
    
	do
	{
		printf("Enter secret code : ");
		scanf("%d", &guess);
	} while (guess != i);		//	;

	printf("Good!");

	return 0;

}

while๋ฌธ์—์„œ ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์ด while๋ฌธ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๋ฌด์กฐ๊ฑด ํ•œ ๋ฒˆ์€ ์‹คํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ์—๋Š”

do while๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

 

 

 

6.14 ์–ด๋–ค ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

 

์ง„์ž…์กฐ๊ฑด vs ํƒˆ์ถœ์กฐ๊ฑด

while, for    do while

for while
for (;test;)

while(test)

for(init; test; update)
    body;
init;
while(test)
{
    body;
    update;
}
for(int i = 0; i < 100; ++i)    counting while(scanf("%d", &num) == 1)    infinite

 

 

 

6.15 ์ค‘์ฒฉ๋œ ๋ฃจํ”„๋“ค

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define NUM_ROWS 5
#define FIRST_CHAR 'A'
#define LAST_CHAR 'K'

int main(void)
{
	int r;	//	row loop
	int c;	//	character loop

	for (r = 0; r < NUM_ROWS; ++r)//	outer row loop
	{
		for (c = FIRST_CHAR; c <= LAST_CHAR; ++c)
			printf("%c ", c);
		printf("\n");
	}
	
	for (r = 0; r < NUM_ROWS; ++r)//	outer row loop
	{
		for (c = FIRST_CHAR; c <= FIRST_CHAR + r; ++c)
			printf("%c ", c);
		printf("\n");
	}
    
  
	return 0;

}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define FIRST_CHAR 'A'

int main(void)
{
	char last_char = 0;
    
	const int num_rows = last_char - FIRST_CHAR + 1;
    
	scanf("%c, &last_char");
    
	int r;	//	row loop
	int c;	//	character loop

	for (r = 0; r < num_rows; ++r)//	outer row loop
	{
		for (c = FIRST_CHAR + r; c <= FIRST_CHAR + num_rows; ++c)
			printf("%c ", c);
		printf("\n");
	}
	
	return 0;

}

์ด ์ฝ”๋“œ๋Š” ์ข€ ๋” ๋ถ„์„ํ•ด๋ณด์ž ์•„์ง ์ดํ•ด๋ฅผ ๋ชปํ–ˆ๋‹ค

 

 

 

6.16 ๋ฐฐ์—ด๊ณผ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ

 

์ˆซ์ž ํ•˜๋‚˜    1

์ˆซ์ž์˜ ๋ฐฐ์—ด 0 1 2 3 4 5 6 7 8 9

๋ฌธ์ž ํ•˜๋‚˜   'a'

๋ฌธ์ž์˜ ๋ฐฐ์—ด 'H' 'e' 'l' 'l' 'o' '\0'

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define NUM_DAYS 365

int main(void)
{
	char my_chars[] = "Hello, World!";

	int daily_temperature[NUM_DAYS];
	double stock_prices_history[NUM_DAYS];

	printf("%zd\n", sizeof(stock_prices_history));		//	365 * 8 = 2920
	printf("%zd\n", sizeof(double) * NUM_DAYS);
	printf("%zd\n", sizeof(stock_prices_history[0]));	//	8

	int my_numbers[5];

	my_numbers[0] = 1;
	my_numbers[1] = 3;
	my_numbers[2] = 4;
	my_numbers[3] = 2;
	my_numbers[4] = 1024;

	scanf("%d", &my_numbers[0]);	//	equal scanf("%d", my_numbers);

	printf("%d\n", my_numbers[0]);
	printf("%d\n", my_numbers[1]);
	printf("%d\n", my_numbers[2]);
	printf("%d\n", my_numbers[3]);
	printf("%d\n", my_numbers[4]);

	/* Runtime Error */
	//my_numbers[5] = 123;	//	out of bound

	//my_numbers = 7;			//	compile error

	return 0;

} 

 

 

 

6.17 for ๋ฃจํ”„๋ฅผ ๋ฐฐ์—ด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define SIZE 5

int main(void)
{
	int my_arr[SIZE];

	//	prepare for array data
	for (int i = 0; i < SIZE; ++i)
		my_arr[i] = i;

	//	printf array data
	for (int i = 0; i < SIZE; ++i)
		printf("%d ", my_arr[i]);

	return 0;

} 

์˜ˆ์ œ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define SIZE 5

int main(void)
{
	int numbers[SIZE];
	int average = 0;
	int i;

	printf("Enter %d numbers : ", SIZE);

	//	prepare for array data
	for (int i = 0; i < SIZE; ++i)
		scanf("%d", &numbers[i]);
			
	//	printf array data
	for (int i = 0; i < SIZE; ++i)
		average += numbers[i] / SIZE;

	printf("Average = %d\n", average);

	return 0;

} 

 

 

 

6.18 ๋ฃจํ”„ ์•ˆ์—์„œ ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’ ์‚ฌ์šฉํ•˜๊ธฐ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int base, exp, result;
	
	while (scanf("%d %d", &base, &exp) == 2)
	{
		result = 1;

		for (int i = 0; i < exp; ++i)
			result *= base;

		printf("Result = %d\n", result);
	}
	
	return 0;
}

ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๊ธฐ

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int compute_pow(int base, int exp);

int main(void)
{
	int base, exp, result;
	
	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 (int i = 0; i < exp; ++i)
		result *= base;

	return result;
}

 

 

 

7.1 ๋ถ„๊ธฐ๋ฌธ if

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void)
{
	int number;

	printf("Input a positiveinteger : ");
	scanf("%d", &number);

	if (number % 2 == 0)
		printf("Even");
	
	else //	if (number % 2 != 0)
		printf("odd");

	return 0;
}

1.

if (expression)

  Statement

 

2.

if (expression)

  Statement

else

  Statement2

 

'๋”ฐ๋ฐฐ์”จ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋”ฐ๋ฐฐ์”จ 7.10 ~  (0) 2021.01.18
๋”ฐ๋ฐฐ์”จ 7.2 ~  (0) 2021.01.15
๋•Œ๋ฐฐ์”จ 6.1 ~  (0) 2021.01.11
๋”ฐ๋ฐฐ์”จ 5.1 ~  (0) 2021.01.10
๋”ฐ๋ฐฐ์”จ 4.5 ~  (0) 2021.01.08