[C언어] CodeUp 기초100제 001- 100

44681 단어 codeup기초100제CC
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

좋은 웹페이지 즐겨찾기