๐ก
๋ฐ๋ฐฐ์จ 6.10 ~ ๋ณธ๋ฌธ
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 |