본문 바로가기

C&C++_Basic

C언어 BMI : 표준입력으로 받은 신장(키)과 몸무게를 이용하여 비만 정도를 출력하는 프로그램 BMI 지수 = 몸무게(kg) ÷ (신장(m) × 신장(m)) BMI 지수가5 미만: 저체중, 18.5~23은 정상, 23~25은 과체중 25~30은 비만, 30~35는 고도비만, 35 이상은 초고도비만 #include int main() { printf("신장과 몸무게를 입력하세요"); float x,y; scanf("%f %f",&x,&y); float BMI = y / (x*x); if ( BMI < 18.5) printf("당신은 저체중입니다"); else if ( 18.5 더보기
C언어 두 실수의 연산을 수행하는 프로그램 * 두 실수를 입력받고 + , - , * , /일지를 선택한 후 그 내용을 출력하게 하세요 #include int main() { float x,y;// 되도록 float을 쓰기, double을 쓰기보다는 int input; printf("두 실수를 입력하세요 "); scanf("%f %f",&x,&y); printf("연산종류 번호를 선택하세요 1[+] 2[-] 3[*] 4[/]"); scanf("%d",&input); switch(input) { case 1: printf("%.1f + %.1f = %.1f",x,y,x+y); break; case 2: printf("%.1f - %.1f = %.1f",x,y,x-y); break; case 3: printf("%.1f * %.1f = %.1f",x,.. 더보기
C언어 세정수에서 최소값을 출력하는 프로그램 1. 표준입력으로 받은 세정수에서 최소값을 출력하는 프로그램을 작성하시오. 최소수를 구할 때는 if 문을 사용과 삼항 연산자를 이용한 메크로로 정의하여 사용, 두가지방법으로 작성해 보시오. 실행예) 세 정수를 입력: 10 30 20 최소 수: 10 #include int main() { int x,y,z; printf("세 숫자를 입력하세요\n"); scanf("%d %d %d",&x,&y,&z); if(x y) { if(yz) printf("if 문 사용:최솟값은 %d이다",z); } switch(x>=y) { case 1: if(yz) printf("삼항 문 사용:최솟값은 %d이다",z); break; case 0: if(xz) printf("삼항문 사용: 최솟값은 %d이다",z); break; } .. 더보기
C_조건) 두 실수의 연산을 수행하는 프로그램 위의 프로그램을 그대로 작성해보시오 #include int main() { float x,y;// 되도록 float을 쓰기, double을 쓰기보다는 int input; printf("두 실수를 입력하세요 "); scanf("%f %f",&x,&y); printf("연산종류 번호를 선택하세요 1[+] 2[-] 3[*] 4[/]"); scanf("%d",&input); switch(input) { case 1: printf("%.1f + %.1f = %.1f",x,y,x+y); break; case 2: printf("%.1f - %.1f = %.1f",x,y,x-y); break; case 3: printf("%.1f * %.1f = %.1f",x,y,x*y); break; case 4: printf(".. 더보기
C_조건) 표준입력으로 받은 세정수에서 최소값을 출력하는 프로그램 1. 표준입력으로 받은 세정수에서 최소값을 출력하는 프로그램을 작성하시오. 최소수를 구할 때는 if 문을 사용과 삼항 연산자를 이용한 메크로로 정의하여 사용, 두가지방법으로 작성해 보시오. 실행예) 세 정수를 입력: 10 30 20 최소 수: 10 #include int main() { int x,y,z; printf("세 숫자를 입력하세요\n"); scanf("%d %d %d",&x,&y,&z); if(x y) { if(yz) printf("if 문 사용:최솟값은 %d이다",z); } switch(x>=y) { case 1: if(yz) printf("삼항 문 사용:최솟값은 %d이다",z); break; case 0: if(xz) printf("삼항문 사용: 최솟값은 %d이다",z); break; } .. 더보기
#C언어 배열 : 이차원 " 배열 포인터 " #include int main() { int ary[][4] = { 5,7,6,2,7,8,1,3}; /* 5 7 6 2 7 8 1 3 */ int (*ptr)[4] = ary; printf("%2d, %2d\n", **ary, **ptr++);// 1행 1열 value 출력 printf("%2d, %2d\n", **(ary+1), **(ptr++)); // 1행 2열 value 출력 ptr = ary; // 다시 초기화 해주는 것. 이후 ary와 ptr 값이 달라지므로 ( 위에서 ptr 후위 증감) printf("%2d, %2d\n", *(ary[1]+1),*(ptr[1]+1)); // 2행 2열을 출력 printf("%2d, %2d\n", *(*(ary + 1) +1),*(*(ptr + 1) +1)).. 더보기
# C언어 포인터 : const 포인터 상수 기초 1( 포인터에 붙이기 VS 상수에 붙이기 ) #include int main() { // 기본원리 : const 바로 뒤에 붙은 애는 변경할 수 없다. //1, " const type * 변수" 형태 ( type 앞에 const 가 붙을 때 ) int i =10, j =20; const int *p = &i; printf("%d\n",*p); // 10 p = &j; printf("%d\n",*p); // 20 /* 설명 *p를 상수로 고정한다는 것이다. 즉, *p는 무조건 고정된 값이고, 설령 *p 혹은, p를 바꾸고 싶다고 하더라도 *p는 변경할 수 없다 즉, 만약 *p 혹은 p 를 변화시키고자 한다면 p 를 변화시켜야 한다 예를 들어, *p = j ; 이렇게 하면 error 가 뜬다 위의 코드를 보면, *p 가 처음에는 i 를 출력하고 있었다.. 더보기
# C언어 포인터 : 이중 포인터 기초 1 #include int main() { int i =20; int *pi = &i; int **dpi = π /* int *pi = &i; 는 다음과 같이 표현할 수도 있다. >> int *pi; pi = &i; 즉, 다시 말해서, pi 는 i 의 주소값을 가리키는 포인터이다. 그러므로 출력시 *pi = i , 즉, i 의 상수값이 출력된다. 이번에는 int **dpi 를 살펴보자 int **dpi = π 도 다른 식으로 표현될 수 있다. >> int **dpi ; dpi = π 이제 **dpi 즉, 이와 같이 **가 2개 붙으면, 이중 포인터라고 생각하면 된다. 이중 포인터 dpi 는 포인터 pi 의 주소값을 가리키는 것. 그러므로 *dpi 는, 포인터 pi 의 '값'을 가리킬 것인데, 여기서 pi 의.. 더보기