#include<stdio.h>//전처리기 선언
int main() //main 함수는 C언어에서 없으면 안됨(진입점 함수)
{
printf("든든한 C프로그래밍 !!!\n");//화면에 든든한 C프로그래밍!!!출력
return 0;//프로그램 종료
}
🔽

#include <stdio.h>
int main()
{
printf("든든한\n"); //\n이 줄 바꾸기 해줌
printf("C프로그래밍 !!!"); //실행결과를 보면 \n가 필요없음
return 0;
}
🔽

#include <stdio.h>
int main()
{
printf(" *\n ***\n *****\n");//스페이스바를 3,1,0개 순으로 넣고 \n으로 줄바꿈
return 0;
🔽

#include <stdio.h>
int main()
{
printf(" * \n");//스페이스바 두번눌러야지 별이 가운데있음
printf(" *** \n");//스페이스바 한번
printf("**c**\n");//스페이스바 안눌러도 됨
printf(" *** \n");
printf(" * \n");
return 0;
}
🔽

#include <stdio.h>
int main()
{
printf("든든한 ");//모니터에 출력
FuncA();//함수호출
printf("프로그래밍!!!\n");// 모니터에 출력
return 0;
}
FuncA()//호출하는 함수
{
printf("C ");
}
🔽

#include <stdio.h>
int main()
{
FuncA();//함수A호출
printf("C ");
printf("프로그래밍");
FuncB();//함수B호출
return 0;
}
FuncA()//함수A
{
printf("든든한 ");
}
FuncB()//함수B
{
printf(" !!! \n");
}
🔽

#include <stdio.h>
int main()
{
float height = 175.1;
int salary = 3500000;//변수 선언 및 초기화
printf("성명: 홍길동 \n");
printf("키(신장): %lf\n", height );//%lf는 부동소수점
printf("월급: %d", salary);
return 0;
}
🔽

#include <stdio.h>
#define TRUE 1// 매크로 상수는 실행 시 수정 불가
#define FALSE 0
int main()
{
int true = 1; //변수는 수정 가능
int false = 0;
printf("TRUE: %d, FALSE: %d \n", TRUE, FALSE);//true면 1을 false면 0 표시
printf("true:%d, false:%d \n",true,false);//true면 1을 false면 0 표시
true = 2;//true는 2
false = 3;//false는 3
printf("true:%d, false: %d \n", true, false);true면 2를 false면 3 표시
return 0;
}
🔽

#include<stdio.h>
int main()
{
//변수 선언
char gender;
int age;
float height;
//데이터 입력
printf("성별(남:m,여::w)?");
scanf("%c", &gender);//문자'w,m'중 하나를 %c위치에 출력 //"&"연산자에 의해 변수가 할당된 메모리의 시작주소를 출력
printf("나이? ");
scanf("%d", &age);//정수를 %d 위치에 출력 //"&"연산자에 의해 변수가 할당된 메모리의 시작주소를 출력
printf("키(신장)?");
scanf("%f", &height);//실수를 %f 위치에 출력 //"&"연산자에 의해 변수가 할당된 메모리의 시작주소를 출력
printf("성별: %c, 나이:%d,키(신장): %f \n", gender, age, height);
return 0;
}
🔽

#include<stdio.h>
int main()
{
int over_time, time_sudang = 25000;
int sudang;
printf("잔업시간? ");
scanf("%d", &over_time); //정수를 %d위치에 출력 //변수명 앞에 "&"무조건 필요
sudang = over_time * time_sudang; //수당=오버타임 * 시간수당
printf("잔업수당: %d \n", sudang); //잔업수당: 다음 수당 값나옴
return 0;
}
🔽

#include<stdio.h>
#define USD 1100//달러
#define EUR 1350//유로
#define GBP 1500//파운드
int main()//진입점 함수
{
int money;//변수 선언
printf("환전할 원화 금액? ");//모니터에 "환전할 원화 금액?" 출력
scanf("%d", &money);//주소연산자&money
printf("\n달러 환전 : %d \n", money / USD);//money에 USD나누고 정수만 출력
printf("유로 환전 : %d \n", money / EUR);//money에 EUR나누고 정수만 출력
printf("파운드 환전 : %d \n", money /GBP);//money에 GBP나누고 정수만 출력
return 0;//프로그램 종료
}
🔽

#include <stdio.h>
#include<limits.h >
int main()
{
short int s1 = SHRT_MIN;//short의 최대보다 작은 수 할당
short int s2 = SHRT_MAX;//short의 최대보다 큰 수 할당
printf("s1 : %hd, s2: %hd \n", s1, s2);
printf("s1-1 : %hd \n", s1 - 1); //언더플로우
printf("s2+1 : %hd \n", s2 + 1); //오버플로우
printf("\n현재 시스템의 C 컴파일러의 데이터 유형의 크기 : \n\n");
printf("signed char :");-128~127까지 표현가능함
printf("\t %d byte(%d bit)", sizeof(signed char), CHAR_BIT);signed char를 자료형의 크기를sizeof로 확인 몇 바이트인지 모니터에 출력
printf("\t값의 범위 : %d 에서 %d까지의 값\n\n", CHAR_MIN, CHAR_MAX);
printf("unsigned char :");//1바이트로 0~255까지 표현이 가능함
printf("\t %d byte(%d bit)", sizeof(unsigned char), CHAR_BIT);//unsighend char의 자료형의 크기를sizeof로 확인
printf("\t값의 범위: %d 에서 %d까지의 값\n\n", 0, UCHAR_MAX);
printf("signed short int :");//signed short int :모니터에 출력//메모리 크기는 2바이트 값 범위는 32768~32767까지 저장
printf("\t %d byte ", sizeof(signed short));signed short의 크기 확인
printf("\t값의 범위: %d 에서 %d까지의 값\n\n", signed short SHRT_MAX);//앞의 %d에는 signed short, 뒤%d에는 SHRT_MAX모니터에 출력
printf("unsigned short int :");//2바이트 메모리 크기 0~65535까지 저장가능
printf("\t %d byte ", sizeof(unsigned short));//unsigned short크기 확인
printf("\t값의 범위: %d 에서 %d까지의 값\n\n",0 , USHRT_MAX);
printf("signed int :");//4바이트 크기, -2^31~2^31까지 저장
printf("\t %d byte ", sizeof(signed int));//signed int 크기 확인
printf("\t값의 범위: %d 에서 %d까지의 값\n\n", INT_MIN, INT_MAX);
printf("unsigned int :");//0~4294967295까지 저장가능
printf("\t %d byte ", sizeof(unsigned int));unsigned int크기 확인
printf("\t값의 범위:%d 에서 %u까지의 값\n\n", 0, UINT_MAX);
return 0;
}//책에 실행결과와 다름 signed char :에 대해서 없음.
//책 처럼 값의 범위가 옆으로 나오려면 printf("\t %d byte \n ", sizeof(unsigned int));여기에서 "\n"를 지워줘야 함
🔽

#include <stdio.h>
int main()
{
int hour, min = 60, sec = 60;
printf("시간 입력?");//모니터에 "시간 입력?" 출력
scanf("%d", &hour);//&주소연산자
printf("%d 시간은 %d 분, %d 초 \n", hour, hour * min, hour * min * sec);//시간=hour 값이 내려옴, min은 hour*min값 계산, sec은 hour*min*sec값 계산
return 0;
}
🔽

#include <stdio.h>
int main()
{
int ounce;
printf("무게의 단위인 온스입력?");
scanf("%d", &ounce);
printf("%d 온스는 그램으로 %.2f gm \n", ounce, ounce * 28.349523);//%.2f는 소수점 2째자리 까지 구함//%d에 ounce들어가고 %.2f에 ounce * 28.349523계산
printf("%d 온스는 리터로 %2f L \n", ounce, ounce * 28.349523 / 1000);//%.2f는 소수점 2째자리 까지 구함//%d에 ounce들어가고 %.2f에 ounce * 28.349523계산
return 0;
}
🔽

#include <stdio.h>
int main()
{
int n1, n2, n3, min;
printf("세 수를 입력하세요? ");
scanf("%d%d%d", &n1, &n2, &n3);
printf("입력된 값 n1 : %d, n2 : %d, n3 : %d \n", n1, n2, n3);
min = (n1 <= n2 ? n1 : n2);//A와 B에서 가장 작은수 뽑기
min = (n3 <= min ? n3 : min);//B에서 A에서가장 작은수 뽑기
printf("세 수 중 가장 작은 값: %d \n", min);
return 0;
}
🔽

#include <stdio.h>
int main()
{
int kor, eng, mat, sum = 0, rank;
float avg;//avg를 float로 실수 범위로 지정
printf("국어, 영어, 수학 점수를 입력하세요? ");
scanf("%d%d%d", &kor, &eng, &mat);//세수 입력(90,65,87)
sum = kor + eng + mat;//kor + eng + mat합 계산
avg = (float)sum / 3;//float형으로 변환
rank = (avg >= 80 ? 1 : (avg >= 60 ? 2 : 3));//avg가 80이상이면 1, avg가 60이상이면 2 아니면 3
printf("총점 : %d, 평균 : %.2f, 등급 : %d \n", sum, avg, rank);
return 0;
}
🔽

#include <stdio.h>
int main()
{
int x = 10, y = 20, tmp = 30;//int 형 변수 선언
x++, ++y;//y먼저 1증가해서 21로 x는 후순위라 다음 줄에서 계산된다.
tmp += x + y++;//x가 ++이 안 붙기 때문에 x 그대로 10이 내려오고 y값 21에서 y++이니까 21+1이 된다.(22) 그 후 10+22가 된 후 tmp에 더해지면 62가 된다.
printf("x : %d, y : %d,tmp : %d \n", x, y, tmp);
return 0
}
🔽

#include <stdio.h>
int main()
{
double x, result;//double형 변수 선언
printf("x ?");
scanf("%lf", & x);//double형 변수를 &x에 저장
result = 5 * x * x * x + 6 * x * x + 7 * x;//5x^3+6x^2+7x
printf("result : %lf \n", result);
return 0;
}
🔽

#include <stdio.h>
#define FEET 30.48//FEET 30.48 정의
#define YARD (FEET*3)//YARD (FEET*3)정의
#define INCH 2.54//INCH 2.54정의
#define CM 1//CM 1정의
int main()
{
int cm, inch, feet, yard; //int형 변수 선언
printf("길이의 기본단위인 야드(yard) 입력? ");
scanf("%d", &yard);
printf("%d yard는 feet로 %.2f \n", yard, yard * YARD / FEET);//대입수 2에 (FEET*3)/FEET 대입하면 피트 사라지고 2*3(%.2f로 인해 소수점 2자리 까지)
printf("%d yard는 inch로 %.2f \n", yard, yard * YARD / INCH);//6*30.48/2.54계산하면 72.00(%.2f로 인해 소수점 2자리 까지)
printf("%d yard는 cm로 %.2f \n", yard, yard * YARD / CM);//72*2.54=182.88(%.2f로 인해 소수점 2자리 까지)
return 0;
}
🔽

#include <stdio.h>
int main()
{
double d1, d2, d3, result;//double형 변수 선언
d1 = 1.36e-5; //식(1.36*10^-5)*(3.72*10^-8)/(5.124*10^7)에서 (1.36*10^-5)를 %e 라는 형식 지정자를 사용
d2 = 3.72e-7; //식(1.36*10^-5)*(3.72*10^-8)/(5.124*10^7)에서 (3.72*10^-8)를 %e 라는 형식 지정자를 사용
//책에서는 3.72e-8로 되있지만 책의 결과처럼 나오기 위해서는 3.72e-7로 변경해야함
d3 = 5.124e+7; //식(1.36*10^-5)*(3.72*10^-8)/(5.124*10^7)에서 (5.124*10^7)를 %e 라는 형식 지정자를 사용
result = d1 * d2 / d3;
printf("다항식의 결과 : %.30lf \n", result);//소수점30자리까지 나타냄
printf("다항식의 결과 : %e \n", result);//%e는 5.124e+7처럼 형태 변환(형식 지정)
return 0;
}
🔽

#include <stdio.h>
int main()
{
int n = 4;
switch(n)//n을 case 마다 바꿔준다.
{case 1:n += 2;//1+2=3이므로 답이 아님
break;
case 2:n *= 2;//n=2일때 2*2=4이므로 답이 4가 나옴
break;
case 3: n /= 2;//3/2는 4가 아님
break;
}
printf("n : %d \n", n);
return 0;
}
🔽

#include <stdio.h>
int main()
{
int qty, cost, result;
printf("판매수량? ");
scanf("%d", &qty);
printf("단가? ");
scanf("%d", &cost);
if (qty * cost > 1000000)//qty*cost가 1000000초과이면
result = qty * cost * 0.95;//qty*cost*0.95계산
else//1000000초과가 아니라면
result = qty * cost;//qty*cost값 계산
printf("판매금액 : %d \n", result);
return 0;
}
🔽

🔽

#include <stdio.h>
int main()
{int width, height, choice;
printf("선택? (1:정사각형), 2:직사각형)?");//1번을 선택할 것인지 2번을 선택할 것인지 선택
scanf("%d", &choice);//정수 입력
if (choice == 1)//1번을 선택했다면
{
printf("한 변의 길이?");//한변의 길이 는?
scanf("%d", &width);//정수입력(한변의 길이)
printf("정사각형의 면적: %d \n ", width * width);//정사각형의 면적은 width * width로 계산
printf("정사각형의 둘레의 길이: %d \n ", width * 4);//정사각형의 둘레는 width * 4로 계산
}
else//1번이 아닌 2번이 선택됬다면
{
printf("가로, 세로의 길이?");//가로, 세로 길이 는?
scanf("%d%d", &width, &height);//두개의 정수 입력
printf("직각형의 면적: %d \n ", width * height);//직각형의 면적은 width * height로 계산
printf("직각형의 길이: %d \n ", (width + height)*2);//직각형의 길이는 (width + height)*2로 계산
}
return 0;
}
🔽

🔽

#include <stdio.h>
int main()
{ // 변수 선언 및 초기화
int Num, i, oddSum=0, evenSum=0;
//데이터 입력
printf("정수 입력? %d", Num);
scanf("%d", &Num);
//반복문에서 홀수/짝수 누적합 구하기
for(i = 1; i <= Num; i++)
{
//짝수의 합
if(i % 2 == 0)
evenSum += i; // evenSum = i + evenSum
//홀수의 합
else
oddSum += i;
}
printf("1부터 %d까지의 홀수의 합 = %d\n", Num, oddSum);
printf("1부터 %d까지의 짝수의 합 = %d\n", Num, evenSum);
return 0;
}
#include <stdio.h>
int main()
{
char inputChar, Cn = 0;
while (1)
{
printf("한 문자 입력? ");
inputChar = getchar();//문자입력
getchar();//엔터값 버림
if (inputChar == 'q')//만약 q가 입력되면 중지
break;
if (inputChar >= 'A' && inputChar <= 'Z')//&&는 그리고 연산자임 그래서 A부터Z까지 대문자 확인
++Cn;
}
printf("입력된 대문자 수: %d", Cn);
return 0;
}
🔽

#include <stdio.h>
int main()
{
int Num, tmp, base;
printf("정수를 입력하시오: ");
scanf("%d", &Num); //1234
base = 1000;
while (Num)
{
tmp = Num / base;//1234/1000를 나누면 1이 몫이고 234가 나머지 계산을 밑으로 내려서 계산
printf("%5d 단위 값 : %d \n", base, tmp);//앞에 5자리 공백표시
Num = Num % base;//1234/1000의 나머지 계산
base = base / 10;//다음 자리수를 위해 10나눔//계속 반복
}
return 0;
}
🔽

#include <stdio.h>
int main()
{
int choice, N, Sum = 0, i;
printf("1. 1 부터 N까지의 합 \n");
printf("2. 1 부터 N까지 홀수의 합 \n");
printf("3. 1 부터 N까지 짝수의 합 \n");
printf("Select? (1~3) ");
scanf_s("%d", &choice);
printf("N 값 입력? ");
scanf_s("%d", &N);
switch (choice)
{
case 1: for (i = 1; i <= N; i++)//i=1이면서 N보다 작거나 같을 때 i에 1씩 증가
Sum += i;//Sum=Sum+i
break;
case 2: for (i = 1; i <= N; i++)//i=1이면서 N보다 작거나 같을 때 i에 1씩 증가
if (i % 2 == 1)//i를 2로 나눴을때 나머지가 1이면 반복문에 2씩 추가
Sum += i;
break;
case 3:for (i = 1; i <= N; i++) //i=1이면서 N보다 작거나 같을 때 i에 1씩 증가
if (i % 2 == 0)//2로 나눴을때 나머지가 0이면 반복문에 2씩 추가
Sum += i;
break;
}
printf("1 부터 %d 까지 %s 합: %d \n", N,(choice == 1 ? "" : (choice == 2 ? "홀수" : "짝수")), Sum);//1이면 공백을 아니면 다시 choice실행해서 2일때 true면 홀수 아니면 짝수 출력//3항 연산자임
printf("End. \n");
return 0;
}
🔽

🔽

🔽

#include <stdio.h>
int main()
{
int choice, N, Sum = 0, i, stop = 1;
while (1)
{
printf("\m1. 1 부터 N까지의 합 \n");
printf("2. 1 부터 N 까지 홀수의 합 \n");
printf("3. 1 부터 N 까지 짝수의 합 \n");
printf("4. 프로그램 종료 \n");
printf("Select? (1~4) ");
scanf_s("%d", &choice);
if (choice < 1 || choice>4) //1미만 또는 4초과 한쪽이라도 참일 경우 참
continue;//반복
if (choice == 4)//4이면 break
break;//4이면 끝내기
printf("N 값 입력? ");
scanf_s("%d", &N);//정수 입력
switch (choice)
{
//각 메뉴에 해당되는 계산 루틴
case 1:for (i = 1; i <= N; i++)//i가 1이고 N보다 작거나 같으면 i에 1씩 누적
Sum += i;
break;
case 2: for (i = 1; i <= N; i++)//i가 1이고 N보다 작거나 같으면 i에 1씩 누적
if(i%2==1) //i에 2로 나눴을때 나머지가 1이면
Sum+=i;//Sum=Sum+i
break;
case 3: for (i = 1; i <= N; i++)
if (i % 2 <= 0)//i를2로 나눴을때 나머지가 0이면
Sum += i;
break;
}
printf("\n 1 부터 %d까지 %s 합 : %d \n", N, (choice == 1 ? "" : (choice == 2 ? "홀수" : "짝수")),Sum);//1이면 공백 아니면 choice로 2이면 홀수 아니면 짝수
}
printf("End. \n");
return 0;
}
🔽

#include <stdio.h>
double salCalc(int sal);
int main()
{
int salary = 2500000;//int형
double result;//double형
result = salCalc(salary); //salCalc함수호출
printf("월급: %d 의 5%% 성과급: %.2f \n", salary, result);//자식 함수로부터 반환 받은 값 출력, 소수점 2째자리까지 사용
return 0;//종료
}
double salCalc(int sal) //더블형으로 반환
{
return sal * 0.05;
}
//10->18->11 순으로 계산 18에서 계산 된 값을 그대로 result값으로 사용
🔽

#include <stdio.h>
void binaryFunc(int bin);
int main()
{
int num;//변수선언
printf("양의 정수 입력? ");
scanf_s("%d", &num);// 8입력
binaryFunc(num);// binaryFunc함수 호출해서 bin/2 하면 4나옴
printf("\n"); //줄띄우기 출력
return 0; //프로그램 종료
}
void binaryFunc(int bin)// 매게변수 없음
{
if (bin) //만약 bin이라면
{
binaryFunc(bin / 2);//bin이8 /2하면 4
printf("%d", bin%2);//정수 출력
}
}
🔽

#include<stdio.h>
#include<math.h>
double GetDistance(int x1, int x2, int y1, int y2); //함수선언
int main()
{
double distance; //double형
int x1, x2, y1, y2; //int형
printf("첫 번째 좌표, x1,y1? ");//첫 번째 좌표, x1,y1?출력
scanf_s("%d%d", &x1, &y1);//정수 두개 입력
printf("두 번째 좌표, x2 ,y2? ");//두 번째 좌표, x2 ,y2?출력
scanf_s("%d%d", &x2, &y2);//정수 두개 입력
//함수호출과 반환 값 저장
distance = GetDistance(x1, x2, y1, y2); //자식함수 호출(double GetDistance)
printf("두 점 사이의 거리 : %lf \n", distance);
return 0;
}
double GetDistance(int x1, int x2, int y1, int y2)//함수구현
{
double dist; //double형 dist를 뽑아냄
dist = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2); //이거 계산한 값을 17번 줄로 가져가서 계산
return sqrt(dist);
}
🔽

#include <stdio.h>
//함수선언문
void Add(int n1, int n2);
void Sub(int n1, int n2);
void Mul(int n1, int n2);
void Div(int n1, int n2);
int main()
{
int x, y, tmp, select, result;
while (1)
{
printf("\n1. Add \n"); //1.Add출력
printf("2. Subtract \n"); //2. Subtract출력
printf("3. Multiplay \n"); //3. Multiplay출력
printf("4. Divide \n"); //4. Divide출력
printf("5. End \n"); //5. End출력
printf("Select? "); //Select? 출력
scanf_s("%d", &select); //정수 입력
if (select == 5) //5일때 함수 탈출
break;
printf("\n 두 정수를 입력하세요? ");
scanf_s("%d%d", &x, &y); //정수 두개 입력
if (x < y) //x가 작으면 x,y를 교환
{
tmp = x;//x를 tmp에 저장
x = y; //y를 x에 저장
y = tmp;//tmp를 y에 저장
}
switch (select)
{
case 1: Add(x, y); //case1일때 x, y를 더해라
break;
case 2: Sub(x, y); //case2일때 x, y를 빼라
break;
case 3: Mul(x, y); //case3일때 x, y를 곱해라
break;
case 4: Div(x, y); //case4일때 x, y를 나눠라
break;
}
}
return 0;//계산 종료
}
//함수 원형 작성
void Add(int n1, int n2)//출력의 원형 입력의 원형 출력은 따로 반환을 받을게 없으므로 void로 작성
{
printf("%d+%d=%d \n", n1, n2, n1 + n2);
}
void Sub(int n1, int n2)
{
printf("%d-%d=%d \n", n1, n2, n1 - n2);
}
void Mul(int n1, int n2)
{
printf("%d*%d=%d \n", n1, n2, n1 * n2);
}
void Div(int n1, int n2)
{
printf("%d/%d=%d \n", n1, n2, n1 / n2);
}
🔽

#include<stdio.h>
#include<ctype.h>
double celsiusFunc(char celsius, int tmp);//double형으로 반환을 받고 chr형과 int형의 입력을 받음
int main()
{
char celsius; //char형 celsius
int tmp; //int형 tmp
double out; //double형 out
do {
printf("화씨이면 F, 섭씨이면 C 입력? ");
scanf_s("%c%*c", &celsius); //문자입력
celsius = toupper(celsius);//대문자로 변경하는 함수
} while (celsius != 'F' && celsius != 'C');//celcius가 F나 C가 아니면 다시 입력 받는다.
printf("%s 온도? ", celsius == 'F' ? "화씨": "섭씨") //celsius가F이면 화씨 아니면 섭씨
scanf_s("%d", &tmp); //정수 입력
out = celsiusFunc(celsius, tmp);//celsiusFunc의 입력인자는 celsius, tmp가 되고 out으로 반환
printf("\n%s를 %s로 변환: %.2lf\n", celsius == 'F' ? "화씨": "섭씨", celsius == 'F' ? "섭씨": "화씨", out);
return 0;
}
//함수를 완성한다.
double celsiusFunc(char celsius, int tmp)
{
if (celsius == 'F') //만약 celsius가F이면
return(tmp + 32) / 1.8; //tmp에 +32더하고 1.8을 나눈다.
else //아니면
return(tmp * 1.8) + 32; //tmp에 1.8을 곱하고 +32를 한다.
}
🔽

#include <stdio.h>
#define BMI1 "저체중"
#define BMI2 "표준체중"
#define BMI3 "과체중"
#define BMI4 "비만"
void BMI(int ageBase, float height, float kg);//함수선언
int main()
{
float kg; //float형 kg
float height; //float형 height
double result; //double형 result
int ageBase; //int형 ageBase
printf( "키(신장)를 입력하세요(m) ");
scanf( "%f", &height);
printf( "체중을 입력하세요(kg) ");
scanf("%f", &kg);
printf("연령대 선택? (1:20대,2:30대 이상) ");
scanf("%d", &ageBase);
BMI(ageBase, height, kg); //밑에 함수 불러오기
return 0; //종료
}
void BMI(int ageBase, float height, float kg)
{
double bmi = kg / (height * height); //bmi계산법
printf("당신의 BMI지수는 %.2lf, 비만기준: ", bmi);
if (ageBase == 1) //ageBase가1이면
{
if (bmi < 18) //bmi가 18을 넘으면
printf("%s \n", BMI1); // "저체중"출력
else if(bmi < 24)
printf("%s \n", BMI2); //"표준체중"출력
else if(bmi < 31)
printf("%s \n", BMI3); //"과체중"출력
else
printf("%s \n", BMI4); //"비만"출력
}
else if (ageBase == 2)
{
if (bmi < 18.6)
printf("%s \n", BMI1); // "저체중"출력
else if (bmi < 26)
printf("%s \n", BMI2); //"표준체중"출력
else if (bmi < 33)
printf("%s \n", BMI3); //"과체중"출력
else
printf("%s \n", BMI4); //"비만"출력
}
}
🔽

#include<stdio.h>
void game();
int main()
{
int money = 15000; //int형 money=15000
game();
printf("남은금액: %d \n", money);
game();
printf("남은금액: %d \n", money);
return 0;
}
void game()
{
printf("1시간 사용료 3000원 지출. \n");
money -= 3000; //money=money-3000
}
#include<stdio.h>
void game();
int money = 15000; //지역변수 값 저장
int main()
{
game();
printf("남은금액: %d \n", money);//전역변수 접근
game();
printf("남은금액: %d \n", money);//전역변수 접근
return 0;
}
void game()
{
printf("1시간 사용료 3000원 지출. \n");
money -= 3000; //money=money-3000
}
🔽

#include<stdio.h>
int main()
{
int i, sum = 0;
for (i = 0; i <= 5; i++)//i=0부터5까지 1씩 증가
sum += i; //sum=sum+i //0+1+2+3+4+5=15
printf("sum: %d \n", sum);
{
int i = 6, j = 10;
for (; i <= j; i++) //i가 j보다 작거나같으면 j까지 1씩증가
sum += i; //sum=sum+i //6+7+8+9+10=40+위에sum=15이므로 40+15=55
printf("sum : %d \n", sum);
}
printf("i: %d, sum : %d \n", i, sum);
return 0;
}
🔽

#include<stdio.h>
void salaryFunc(int salary);//
int main()
{
int kimSalary = 1000, leeSalary = 1500, hanSalary = 2000, parkSalary = 2500, ukSalary = 3000;
salaryFunc(kimSalary);
salaryFunc(leeSalary);
salaryFunc(hanSalary);
salaryFunc(parkSalary);
salaryFunc(ukSalary);
return 0;
}
void salaryFunc(int salary)
{
static int i = 0; //정적 변수 선언
static float j = 0;
i++; //i=1씩 증가
j+= salary; //j=salary+j //1000+0=1000
printf("직원 Count: %d, 월급: %d, 월급 평균: %.2f \n", i, salary, j/i); //정수 i출력, 위에 계산한 salary출력, j/i한 값 출력
//1500/6해야지 1250이 나오는데 도저히 이해가 안감...
}
🔽

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void DiceGame();
int x, y; //변수선언
int main()
{
int xResult=0, yResult=0, i; //지역변수
srand(time(NULL)); //난수 초기화time()은 1970년 1월 1일 부터 현재까지 경과된 시간은 초단위로 반환
for (i = 1; i <= 5; i++) //i는 1에서 5까지 1씩 증가
{
DiceGame(); //게임호출
xResult = xResult + x;
yResult = yResult + y;
}
printf("x 누적: %d, y 누적 : %d \n", xResult, yResult);
if (xResult > yResult)//xResult가 yResult보다 크면
printf("X 사용자 승. \n");
else if (xResult < yResult)//yResult가 xResult다 크면
printf("Y 사용자 승. \n");
else
printf("X, Y 사용자 동점. \n");
printf("\n");
return 0;
}
void DiceGame() //함수구현
{
x = (rand() % 6) + 1;//시작숫자에6을 나누고 +1한 값
y = (rand() % 6) + 1;//시작숫자에6을 나누고 +1한 값//rand를 두 번하면 두 개의 난수 지정 가능
printf("x : %d, y : %d \n", x, y);
}
🔽

#include<stdio.h>
#include<stdlib.h>
int deposit(int balance); //입금액을 받고 잔고 계산
int withdraw(int balance); //출금액을 입력받고 잔고 계산
void balanceOutput(int balance); //잔고출력
int main()
{
int balance = 0; //전역변수
int choice; //전역변수
while (1)
{
printf("\n1) 입금 \n");
printf("2) 출금 \n");
printf("3) 잔고조회 \n");
printf("4) 종료 \n");
do {
printf(" 선택하세요?(1~4) "); //1~4까지 선택
scanf("%d", &choice);
} while (choice < 1 || choice>4); //1~4사이 번호 선택시
switch (choice)
{
case 1:
balance = deposit(balance); //입금액을 받고 잔고 계산
break;
case 2:
balance = withdraw(balance);//출금액을 입력받고 잔고 계산
break;
case 3:
balanceOutput(balance);//잔고출력
break;
case 4: puts("프로그램을 종료합니다 ");//프로그램을 종료합니다를 출력
exit(0);//exit(0);으로 빠져 나옴
}
}
return 0;
}
int deposit(int balance)//반환을 int형 int형 balance를 입력 받음
{
int money;
printf("\n입금할 금액은? ");
scanf("%d", &money);//기존 balance에 scanf의 money를 더해서 새로운 balance로 대체 //이게 return 되는 것임
balance = balance + money;
return balance;
}
int withdraw(int balance)//반환을 int형 int형 balance를 입력 받음
{
int money;
printf("\n출금할 금액은? ");
scanf("%d", &money);
if (money > balance)//만약 money가 balance보다 크다면
printf("잔고 부족 \n");//잔고 부족 출력
else//아니면
balance = balance – money;//balance = balance – money;만큼 계산
return balance;
}
void balanceOutput(int balance)//printf하고 끝나기 때문에 굳이 return 함수 안정하고 바로 void형태로 나옴
{
printf("현재 잔고는 : %d 입니다. \n", balance);
}
🔽

#include<stdio.h>
#define ST_SIZE 5
int main()
{
int score[ST_SIZE];//정수형 1차원 배열선언
int i, sum = 0;
for (i = 0; i < ST_SIZE; i++) //i는 0에서 ST_SIZE까지 1씩 증가 5번
{
printf(" %d, 점수?", i + 1);//0+1해서 1번이 출력
scanf(" %d", &score[i]);
sum += score[i]; //sum=sum+score[i]
}
printf("\n 배열점수 : ");
for (i = 0; i < ST_SIZE; i++)//ST_SIZE까지 1칸씩 채움0,0,0,0,0이렇게
printf("%d, ", score[i]);
printf("\n 성적평균: %.2f \n", (double)sum / ST_SIZE); //double형 sum/ST_SIZE를 소수점 2자리까지 출력 //float형 명시적 형 변환
return 0;
}
🔽

#include <stdio.h>
int main()
{
int numCn = 0, spaCn = 0, alphaCn = 0, i; //변수선언
char str[100];
printf("문자열 입력? ");
gets(str, 100, stdin);//문자배열 입력함수
for (i = 0; str[i] != NULL; i++)//0부터 NULL까지 1씩증가//문자열 끝까지 반복
{
if ((int)str[i] >= 48 && (int)str[i] <= 57)
numCn++;//후위연산
else if ((int)str[i] >= 65 && (int)str[i] <= 90 || (int)str[i] >= 97 && (int)str[i] < 122) //알파벳 //65보다 크거나 같을때 int형 배열을 스트링에 저장, 90보다 작거나 같을 때 또는 97보다 크거나 같고 122보다 작을때 저장
alphaCn++;//후위연산//대문자A이상이거나 대문자 Z이하 또는 소문자a,z이하
else
spaCn++;//후위연산
}
printf("숫자: %d. 알파벳: %d, 기타문자:%d \n", numCn, alphaCn, spaCn);
return 0;
}
🔽

#include<stdio.h>
int main()
{
int x[] = { 10,20,30,40,50,60,70,80,90,100 }, y[20], i, size; //변수선언
size = sizeof(x) / sizeof(int);//변수선언 //x의 크기/y의 크기
for (i = 0; i < size; i++) //i는 0부터 i가 size보다 작을때 까지 1씩 증가 //x배열 열수 계산
{
y[size - i - 1] = x[i];//x[i]가 y[size - i - 1]에 저장 //x배열원소 y배열에 역순으로 대입.
}
for (i = 0; i < size; i++)
printf("x:[%d]: %d, y[%d]: %d \n", i, x[i],i, y[i]); //출력
return 0;
}
🔽

#include <stdio.h>
int main()
{
int score[10] = { 67,93,100,60,57,86,19,60,79,84 }; //int형 score칸에 10칸 배분
int i, findScore, sw; //선언
printf("검색할 성적? ");
scanf("%d", &findScore); //정수입력
sw = 1; //sw가 1일때
for (i = 0; i < sizeof(score) / sizeof(int); i++) //i가 0부터 sizeof(score) / sizeof(int)까지 1씩 증가//0부터 9까지 반복
{
if (score[i] == findScore)//score[i]가findScore와 같으면
{
sw++;//sw에 1씩 증가//검색되었을때 실행문
printf("검색된 첨자 위치: %d,%d \n", i, findScore);
}
}
if (sw == 1) //(sw == 1)이면
printf("%d, Not found!! \n", findScore); //출력
return 0;
} //60을 입력했을때 60의 위치가 0123456789의 위치에 있을때의 번호 출력
🔽

#include<stdio.h>
#define dNumSZ 5
int main()
{
//배열선언
double dNum[dNumSZ], tmp;
int i, j;
for (i = 0; i < dNumSZ; i++)
{
printf("%d, 실수 입력? ", i + 1);
scanf("%lf", &dNum[i]);
}
printf("\n 입력된 dNum 배열 값 \n");
for (i = 0; i < dNumSZ; i++)//배열 각각의 데이터를 입력 받음
printf("%.2f, ", dNum[i]);
printf("\n");
for (i = 0; i < dNumSZ ; i++)
{
for (j = 0; j < dNumSZ; j++)
{
if (dNum[i] > dNum[j]);
{
tmp = dNum[i];//dNum[i]를 tmp에 저장
dNum[i] = dNum[j];//dNum[j]를 dNum[i]에 저장 //맞바꿈
dNum[j] = tmp;
}
}
}
printf("\n내림차순으로 정렬된 dNum 배열 값 \n");
for (i = 0; i < dNumSZ; i++)
printf("%.2f, ", dNum[i]);
printf("\n");
return 0;
}
🔽

#include<stdio.h>
#define NUM_SZ 10//매크로 상수 선언
int main()
{
int Num[NUM_SZ] = { 56,900,-4,120,7,90,-64,209,711,10 }; //Num의 배열에 56, 900, -4, 120, 7, 90, -64, 209, 711, 10저장//배열초기화
int i, j, maxIndex, minIndex; //변수 선언
maxIndex = minIndex = 0;//최대 최소 인덱스를 0으로 지정해둠
for (i = 0; i < NUM_SZ; i++)//반복//0부터
{
if (Num[i] > Num[maxIndex]) //최대값을 비교할 if
maxIndex = i; //i를 maxIndex에 저장 //i를 maxIndex 로 치환
if (Num[i] < Num[minIndex]) //최소값을 비교할 if
minIndex = i; //i를 minIndex에 저장 //i를minIndex로 치환
}
printf("Num 배열 데이터 \n");
for (i = 0; i < NUM_SZ; i++) //배열을 나열
printf("%d, ", Num[i]); //Num[i]배열 출력
printf("\n\n");
printf("큰 값이 저장된 위치 : %d ,max : %d \n", maxIndex, Num[maxIndex]);
printf("작은 값이 저장된 위치 : %d , min : %d \n", minIndex, Num[minIndex]);
return 0;
}
🔽

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
char star[50] = "", percent[50] = "", sharp[50] = "";//각각 배열에 50칸씩 배분 공백으로
int s1 = 0, p = 0, s2 = 0, i, randNum; //변수 선언
srand(time(NULL));//널 함수 초기화
for (i = 1; i <= 50; i++)
{
randNum = rand() % 3; //randNum은 rand()/3해서 나머지가 0~2일때 randNum에 저장
switch(randNum)
{
//난수값에 의해 배열에 문자 저장
case 0: //0일때
star[s1] = '*'; //난수가 0일때 문자추가
s1++;//하나를 더함 그래야 0일 때 한 개가 출력됨
break;
case 1:
percent[p] = '%'; //난수가 11일때 문자추가
p++;//하나를 더함 그래야 0일 때 한 개가 출력됨
break;
case 2:
sharp[s2] = '#'; //난수가 2일때 문자추가
s2++;//하나를 더함 그래야 0일 때 한 개가 출력됨
break;
}
}
printf("star :%s,count: %d, \n", star, s1); //문자출력,정수출력
printf("percent: %s, count: %d, \n", percent, p); //문자출력,정수출력
printf("sharp :%s, count: %d, \n", sharp, s2); //문자출력,정수출력
return 0; //프로그램 종료
}
🔽
