C언어는 고급언어에 속하지만 요즘은 어셈블리어 취급을 받기도 한다~!
어셈블리어: 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급언어
C언어에서 사용자 정의 함수, 배열, 문자열 및 포인터는 C언어의 특징이자 기본적인 자료형태이다.
포인터: 특정한 데이터가 저장되어 있는 메모리의 주소 그 자체를 저장하는 변수
정해진 특정한 기능을 수행하는 모듈을 의미 -> 각각의 모듈로 쉽게 관리
만약 사용자 정의 함수가 없다면 오직 main함수에서 모든 알고리즘을 처리해야하는데 이는 작업의 효율성을 저하시킨다.
void사용시간 더하기
#include <stdio.h>
// 전역 변수 : 프로그램 어디에서나 접근할 수 있는 변수
// main 함수 밖에서 선언
int hour;
int min;
int minAdd;
// <반환타입> <함수명>(<매개변수>) {<코드>}
void counter()
{
min += minAdd;
hour += min / 60;
min %= 60;
hour %= 24;
// 반환되는 값의 타입과 함수 정의 타입이 일치해야한다.
// 해당함수의 반환타입이 void이기에 반환값이 필요하지 않다.
}
int main()
{
printf("시를 입력하세요 : ");
scanf("%d", &hour);
printf("분을 입력하세요 : ");
scanf("%d", &min);
printf("더할 분을 입력하세요 : ");
scanf("%d", &minAdd);
counter();
printf("더해진 시간은 %d분 입니다.\n", hour, min);
return 0;
}
거스름돈 계산
화폐의 개수를 가장 적게 주는 방법 프로그램
ex) 90원 입력 -> 5개 (50원 1개, 10원 4개)
#include <stdio.h>
// 특정한 금액을 받아서 가장 적은 화폐의 개수의 거스름돈을 구하는 함수
int smallest(int num)
{
int conut = 0;
while(num >= 50000)
{
num -= 50000;
count++;
}
while(num >= 10000)
{
num -= 10000;
count++;
}
while(num >= 5000)
{
num -= 5000;
count++;
}
while(num >= 1000)
{
num -= 1000;
count++;
}
while(num >= 500)
{
num -= 500;
count++;
}
while(num >= 100)
{
num -= 100;
count++;
}
while(num >= 50)
{
num -= 50;
count++;
}
while(num >= 10)
{
num -= 10;
count++;
}
return count; //화폐의 개수
}
// main 함수
int main()
{
int num;
printf("금액을 입력하세요 : ");
scanf("%d", &num);
printf("최소로 줄 수 있는 화폐의 개수는 %d개입니다.\n", smallest(num));
return 0;
}
1월 1일부터 현재의 날짜까지 날짜 차일 구하기
#include <stdio.h>
int getDays(int month, int day)
{
int i, sum = 0;
for(i=0; i<month; i++)
{
if(i == 2) // 이 프로그램에서는 윤년을 감안하지 않음
{
sum += 28;
}
else if(i % 2 == 0) //짝수 달
{
sum += 30
}
else //홀수 달
{
sum += 31
}
}
return sum + day;
}
// main 함수
int main()
{
int month, day;
scanf("%d %d", &month, &day);
printf("해당 날짜까지의 차일은 %d일입니다.", getDays(month, day));
return 0;
}
1. stdio.h (데이터 입출력)
2. math.h (수학)
3. string.h (문자열 처리)
4. stdlib.h (기본 데이터 관련)