목차
1. 포인터 이용해서 2차 방정식의 근을 구하기
매개 변수로 포인터를 사용한다. 두 개의 근을 포인터를 이용해서 반환하도록 한다.
♣결과
-1.000000, -3.000000
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int quardratic(double *xplus, double *xminus)
{
double a, b, c, d;
printf("이차 방정식의 근을 구하는 문제입니다..\na, b, C 세 계수를 입력해주세요\n");
scanf("%lf%lf%lf", &a, &b, &c);
d = b * b - 4.0 * a * c;
*xplus = (-b + sqrt(d)) / (2.0 * a);
*xminus = (-b - sqrt(d)) / (2.0 * a);
printf("근의 값은 %lf, %lf입니다.\n\n", *xplus, *xminus);
return 0;
}
int main()
{
double xplus, xminus;
quardratic(&xplus, &xminus);
printf("근의 값은 %lf, %lf입니다.\n\n", xplus, xminus);
return 0;
}
//olivia_codingschool
2. 포인터 이용해서 정수부, 소수부 나누기
♣결과
2, 0.400
2, 0.400
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int get(double value, int *ipart, double *fpart)
{
*ipart = value / 1;
*fpart = value - *ipart;
printf("%d, %.3lf\n\n", *ipart, *fpart);
return 0;
}
int main()
{
int ipart;
double fpart;
get(2.4, &ipart, &fpart);
printf("%d, %.3lf", ipart, fpart);
return 0;
}
3. 포인터 이용하여 배열 값 +1 바꾸기
- 픽셀 pixel: 디지털 영상은 미세한 픽셀로 이루어져 있다. 픽셀의 밝기는 숫자로 표현된다.
-이미지가 3*3 사이즈라고 하면 9개의 픽셀이 있고, 각 픽셀은 각각 밝기가 숫자로 표시되어 있다.
- 각 픽셀의 밝기는 0-3까지 조정 가능하다고 가정한다.
- 각 픽셀의 밝기를 1씩 줄이는 프로그램을 작성하자.
♣결과
0,0,1,1,2,1,1,2,2
>>1 1 2 2 3 2 2 3 3
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int darker_image(char *p)
{
for (int i = 0; i < 9; i++) {
*(p + i) += 1;
printf("%d ", *(p + i));
}
return 0;
}
int main(void)
{
char image[9] = { 0,0,1,1,2,1,1,2,2 };
darker_image(&image);
return 0;
}
//olivia_codingschool
4. 정처기 문제- 출력값구하기
♧코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main()
{
int NUM = 98;
int* ptr;
ptr = &NUM;
NUM += 1;
printf("%d ", NUM);
*ptr = *ptr + 1;
printf("%d ", *ptr);
return 0;
}
//olivia_codingschool
♣결과
99 100
5. 옳은 것을 고르시오
1. 포인터 변수는 기억장소의 번지를 기억하는 동적변수이다.
2. 포인터는 가리키는 자료형이 일치할 때 대입한다.
3. 실행문에서 간접 연산자 *를 사용하여, 포인터 변수가 지시하고 있는 내용을 참조한다.
4. 보통 변수의 번지를 참조하려면 번지 연산자 #를 쓴다.
♣정답
1,2,3
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 51차시 system(), system("cls"), strncpy, strcat, strlength, scanf(), puts(), gets_s(), sizeof() (0) | 2023.04.07 |
---|---|
C언어 50차시 문자열, string, 초기화, getchar(), _getch(), putchar(), _putch(), %s (0) | 2023.04.07 |
C언어 48차시 포인터와 배열 연습문제 1 (0) | 2023.04.07 |
C언어 47차시 배열과 포인터, cpu, hdd, ssd, memory (0) | 2023.04.06 |
C언어 46차시 포인터 연산, call by value, call by reference (0) | 2023.04.05 |