[C언어] CodeUp 기초100제 001- 100
Data.
출력
001
Solution
#include <stdio.h>
int main(void){
printf("Hello"); // Hello
}
-
stdio.h
C언어에서 기본적으로 출력하기 위해서는 표준입출력stdio.h
이라는 헤더파일을 최상위에 선언해주어야 한다. 헤더파일을 선언 후, printf, scanf 와 같은 함수를 사용하여 출력을 할 수 있다. -
printf 함수
printf 함수는 인자를 받아 출력하는 동작을 한다.
ex. printf("Hello"); // Hello
002
Solution
#include <stdio.h>
int main()
{
printf("Hello World"); // Hello World
return 0;
}
- printf()
printf() 함수를 이용하여 출력할 때, 공백을 사이에 두고 출력이 가능하다.
간단하게 말해 띄어쓰기가 가능하다.
003
Solution
#include <stdio.h>
int main(void){
printf("Hello\nWorld");
}
- 이스케이(escape) 문자
- 백슬래시(\), 탭(\t), 캐리지턴(\c) 등과 같은 문자를 이스케이프 문자라고 한다. 출력하는 문장 안에서 원하는 형식에 맞추어 출력할 수 있도록 줄을 바꾸는 등 역할을 한다.
\n
: 문장을 출력할 때 줄바꿈을 한다.\t
: 탭만큼의 공간을 삽입한다.\c
: 커서를 그 줄의 맨 앞으로 커서를 보낸다.
004
Solution
#include <stdio.h>
int main()
{
printf("\'Hello\'"); // 'Hello'
return 0;
}
- 특수문자(작은 따옴표) 출력
특수문자를 출력하기 위해서는'
를\'
로 입력해야 한다.\'
: 작은 따옴표 문자 자체를 출력\"
: 큰 따옴표 문자 자체를 출력
005
Solution
#include <stdio.h>
int main()
{
printf("\"Hello World\""); // "Hello"
return 0;
}
- 특수문자(큰 따옴표) 출력
특수문자를 출력하기 위해서는"
를\"
로 입력해야 한다.\'
: 작은 따옴표 문자 자체를 출력\"
: 큰 따옴표 문자 자체를 출력
006
Solution
#include <stdio.h>
int main()
{
printf("\"!@#$%%^&*()\""); // "!@#$%^&*()"
return 0;
}
- 특수문자(
!@#$%^&*()
) 출력
기본적으로 특수문자는 정상적으로 출력이 가능하지만, 퍼센트 문자%
를 출력하기 위해서는%%
으로 입력해야 한다.
007
Solution
#include <stdio.h>
int main()
{
printf("\"C:\\Download\\hello.cpp\"");
return 0;
}
- 백슬래시 문자(
\
)
백슬래시 문자는 특수문자를 출력하기 위해 사용되기 때문에 일반적인 형태로 출력되지 않는다.
백슬래시 문자(\
)를 출력하기 위해\\
로 출력해야 한다.
008
Solution
#include <stdio.h>
int main()
{
printf("\u250C\u252C\u2510\n");
printf("\u251C\u253C\u2524\n");
printf("\u2514\u2534\u2518\n");
return 0;
}
입출력
010
Solution
#include <stdio.h>
int main(void){
int n;
scanf("%d", &n);
printf("%d", n);
return 0;
}
-
변수 선언
C언어에서 변수를 선언할 때 변수의 자료형(DataType)을 반드시 명시하여 선언해야 한다.int n
: 정수형 자료형의 변수n
을 선언
-
scanf()
scanf()
함수는 표준입력으로 부터 데이터를 읽어와 형식 문자열(format)에 따라 인자들이 가리키는 위치에 값을 대입한다. 이 때, 인자들은 반드시 할당된 공간이어야 하며, 형식태그가 지정하는 바에 따라 대응되는 인자들이 가리키는 공간에 값이 대입된다.
011
Solution
#include <stdio.h>
int main(void){
char x;
scanf("%c", &x);
printf("%c", x);
return 0;
}
-
문자형 변수
문자를 저장하기 위한 변수는char
키워드로 선언되어야 한다. -
형식문자열 :
%c
데이터 타입이 문자인 경우(char
) 선언된 변수에 입력 값을 저장하기 위해서는 형식 문자열%c
를 사용해야 한다.
012
Solution
#include <stdio.h>
int main(void){
float x;
scanf("%f", &x);
printf("%f", x);
return 0;
}
-
실수형 변수
실수형을 저장하기 위한 변수는float
키워드로 선언되어야 한다. -
형식 데이터
데이터 타입이 실수형인 경우(float
) 선언된 변수에 입력 값을 저장하기 위해서는 형식 문자열%f
를 사용해야 한다.
013
Solution
#include <stdio.h>
int main(void){
int a, b;
scanf("%d %d", &a, &b);
printf("%d %d", a, b);
return 0;
}
- scanf() 함수
scanf() 함수는 Enter 또는 공백으로 입력 데이터가 구분된다.
014
Solution
#include <stdio.h>
int main()
{
char x, y;
scanf("%c %c", &x, &y);
printf("%c %c", y, x);
return 0;
}
- scanf() 함수를 통해 표준 입력받은 데이터는 printf()로 출력할 때, 두 변수의 위치를 바꾸어 출력할 수 있다.
015
Solution
#include <stdio.h>
int main()
{
float x;
scanf("%f", &x);
printf("%.2f", x);
return 0;
}
- 실수형으로 저장된 변수를 소수점 이하 특정 자리수까지 출력하기 위해서는 형식 문자열을 사용할 수 있다.
%.3f
와 같은 형식으로 지정하면, 소수점 이하 넷 째 자리에서 반올림하여 소수점 이하 셋째 자리까지 출력한다는 의미이다.
016
Solution
#include <stdio.h>
int main(void){
char x;
scanf("%c", &x);
printf("%c", x);
return 0;
}
017
Solution
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
printf("%d %d %d", n, n, n);
return 0;
}
- 동일한 변수를 표준입력 받은 후 변수에 저장하여 해당 변수를 반복하여 출력할 수 있다.
018
Solution
#include <stdio.h>
int main(void){
char x;
scanf("%c", &x);
printf("%c", x);
return 0;
}
- scanf() 는 지정한 형식(format)에 따라 입력을 받을 수 있는 함수이다. 입력을 받고자 하는 형식으로 표현하여 사용한다.
019
Solution
#include <stdio.h>
int main(void){
int year, month, day;
scanf("%d.%d.%d", &year, &month, &day);
printf("%04d.%02d.%02d", year, month, day);
return 0;
}
%04d
를 사용하면 표준 출력시 4칸을 사용하는데, 한 자리 수인 경우 앞에0
을 붙여 출력한다.
020
Solution
#include <stdio.h>
int main()
{
int a, b;
scanf("%d-%d", &a, &b);
printf("%06d%d", a, b);
return 0;
}
021
Solution
#include <stdio.h>
int main()
{
char data[51];
scanf("%s", &data);
printf("%s", data);
return 0;
}
-
C언어에서는 한 문자가 아닌 문자열(단어)를 받고 출력하려면 문자열을 위한 형식 데이터가 존재하지 않는다. 이 문제를 해결하기 위해서는 문자열의 각 문자를 배열이라는 데이터 형식에 각각 저장하는 방법을 사용한다.
-
문자열이라는 데이터를 저장하기 위한 데이터 타입은 존재하지 않지만, 문자열을 저장하고 출력할 때 형식문자열
%s
를 통해 표준 입력(scanf
) 하고 표준 출력(printf
)을 할 수 있다. -
문자를 50개 저장하기 위해서는
char data[51]
로 선언해야 한다.
022
Solution
#include <stdio.h>
int main()
{
char data[2001];
fgets(data, 2000, stdin);
printf("%s", data);
return 0;
}
-
문자열을 입력 받을 때, scanf 함수를 사용하였다. 하지만, scanf 함수는 공백(space, ' ') 문자를 만나면 그 이후로 오는 데이터를 무시한다. 이를 해결하기 위한 방법은 fgets 함수를 이용하는 것이다.
-
fgets 함수를 사용하면 공백 문자가 포함되어 있는 문장을 입력받아 저장할 수 있다. 만약, scanf 함수를 사용하여 문장을 입력 받으면, 첫 번째 단어까지만 저장된다.
023
Solution
#include <stdio.h>
int main()
{
int x, y;
scanf("%d.%d", &x, &y);
printf("%d\n%d", x, y);
return 0;
}
-
문제: 실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다.
이 문제는 여러가지 방법으로 해결할 수 있다. -
해결한 방법: 입력 형식을 소수점을 기준으로 나누어 입력받는다.
024
Solution
#include <stdio.h>
int main()
{
char str[30];
int i;
scanf("%s", &str);
for(i=0; str[i]!='\0'; i++){
printf("\'%c'\n", str[i]);
}
return 0;
}
-
C언어에서는 문장을 저장하기 위해 특별한 방법을 사용하지 않고, 배열이라는 연속된 공간에 문자들을 연속으로 한 개씩 저장하는 방법을 사용한다. 단, 문자열의 마지막임을 나타내기 위해 문자열을 담는 배열의 마지막 요소에 NULL(널) 문자라는 특별한 의미를 가지는 문자를 삽입하여 문자열임을 나타낸다.
-
NULL이란 영단어 자체의 의미로는, 아무런 가치가 없는 또는 아무 것도 없는, 사용되지 않은 등의 의미를 가진다. 문자로는
\0
, 아스키문자의 정수 값은 0을 의미하며 NULL 로도 사용할 수 있다. -
str[30]
025
Solution
#include <stdio.h>
int main(void){
int a, b, c, d, e;
scanf("%1d%1d%1d%1d%1d", &a, &b, &c, &d, &e);
printf("[%d]\n", a*10000);
printf("[%d]\n", b*1000);
printf("[%d]\n", c*100);
printf("[%d]\n", d*10);
printf("[%d]\n", e*1);
return 0;
}
- 5자리 정수를 입력받을 때, 각각의 자리의 숫자를 따로 받아 변수에 저장한다.
각 자리를 각각 받기 위해서 형식문자열%1d
를 사용한다.
026
Solution
#include <stdio.h>
int main(void){
int h, m, s;
scanf("%d:%d:%d", &h, &m, &s);
printf("%d", m);
return 0;
}
%d:%d:%d
형식 문자열을 이용하여 시, 분, 초를 각각 입력 받는다.
027
Solution
#include <stdio.h>
int main(void){
int y, m, d;
scanf("%d.%d.%d", &y, &m, &d);
printf("%02d-%02d-%04d", d, m, y);
return 0;
}
- 표준입력을 받은 형식데이터 :
%d.%d.%d
- 표준 출력을 하는 형식데이터 :
%02d-%02d-%04d
%02d
:00
형식으로 출력, 월 또는 일%04d
:0000
형식으로 출력, 연도
데이터형
028
Solution
#include <stdio.h>
int main()
{
unsigned int num;
scanf("%u", &num);
printf("%u\n", num);
return 0;
}
- 부호 키워드:
signed
,unsigned
C언어에서 부호 키워드를 통해 특성을 정의할 수 있다.signed
: 부호 있는 정수를 표현한다. 보통 signed 키워드는 생략한다.- 표현 범위: -2,147,483,648~ 2,147,483,647
unsigned
: 부호 없는 정수를 표현한다. 따라서 값은 0부터 시작한다.- 표현 범위: 0~4,294,967,295
029
Solution
#include <stdio.h>
int main()
{
double num;
scanf("%lf", &num);
printf("%.11lf\n", num);
return 0;
}
-
실수 데이터형(
float
,double
)의 표현 범위- float: 1.175494e-38~3.402823e+38
- double: 2.225074e-308~1.797693e+308
-
지수 표기법
-
실수e + 지수: 실수 거듭제곱이다.
ex) 2.1e+3 라면, 2.1 1000 = 2100 이 된다. -
실수e - 지수: 실수 (1/10)의 거듭제곱이다.
ex) 2.1e-2 라면 2.1 (1/100) = 0.021 이 된다.
-
030
Solution
#include <stdio.h>
int main()
{
long long num;
scanf("%lld", &num);
printf("%lld\n", num);
return 0;
}
- long long int 의 표현 범위
- 일반적으로
long long int
에서 int 는 생략이 가능하다. - 크기: 8byte (=64bit)
- 표현 범위: -9,223,372,036,854,775,808~
9,223,372,036,854,775,807
- 일반적으로
출력변환
031
Solution
Code Here
Title
000
Solution
Code Here
Author And Source
이 문제에 관하여([C언어] CodeUp 기초100제 001- 100), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mostlyclear/C-코드업-001-008-출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)