티스토리 뷰
예제 1)
길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 총 5개의 정수를 입력 받자 ! 그리고 입력이 끝나면 다음의 내용을 출력하도록 예제를 작성해보자.
- 입력된 정수 중에서 최댓값
- 입력된 정수 중에서 최솟값
- 입력된 정수의 총 합
단, 반드시 입력을 완료한 상태에서 '최댓값'과 '최솟값' 그리고 '총 합'을 계산해야 한다. 참고로 배열을 대상으로 scanf문을 구성할 때에는 다음과 같이 해야 한다.
scanf("%d",&arr[2]); // 3번째 배열ㅇ소에 정수 값 입력 받음
변수를 대상으로 & 연산자를 붙여주듯이. 배열요소를 대상으로 할 때에도, & 연산자를 붙여야 한다.
🤦♀️ 생각 과정
1. 먼저 사용자로부터 5개의 정수를 입력받아야하니 for문을 활용하여 배열의 수를 입력받으면 되겠다.
2. max와 min을 구하려면 각각의 수를 비교하는 과정이 있어야하니 arr[i]로 두고 if 문을 통해 i++ 해가면서 비교하자.
3. 총합 또한 arr[i]를 통해 i가 0 ~ 4가 될때까지 반복하여 더해나가면 될 듯
답안
#include <stdio.h>
int main()
{
int max, min, sum, i;
int arr[5];
for (int i = 0; i < 5; i++)
{
printf("정수를 입력하시오:");
scanf("%d", &arr[i]);
}
max = min = sum = arr[0];
for (i = 1; i < 5; i++)
{
sum = sum + arr[i];
if (max < arr[i])
max = arr[i];
if (min > arr[i])
min = arr[i];
}
printf("최댓값: %d \n", max);
printf("최솟값: %d \n", min);
printf("총합: %d \n", sum);
return 0;
}
RESULT:
✔ 보충할 부분
1. 생각하는 과정은 얼추 맞았는데 코드화 하는 과정에서 시간이 많이 소요됐다. 특히 max, min 값을 일일이 if 문을 통해계산하려고 했는데 for문의 if문을 통해 훨씬 간결하게 코드화 할 수 있었다.
예제 2)
char형 1차원 배열을 선언과 동시에 다음 문장의 내용으로 초기화하고, 초기화 이후에는 저장된 내용을 출력하는 예제를 작성해보자.
"GOOD TIME"
🤦♀️ 생각 과정
1. 사실 문제를 이해하지 못했다 ..
2. 그냥 단순히 char형 배열 초기화하고 printf 이용해서 char 출력하면 안되나 ? 라는 생각을 했다
답안
#include <stdio.h>
int main()
{
char str[] = { 'G','O','O','D',' ','T','I','M','E'};
int arrLen = sizeof(str) / sizeof(char); //문자열 길이 알아내기
int i;
for (i = 0;i < arrLen; i++) // i가 문자열보다 작으면 하나씩 더하기
printf("%c", str[i]); // 결과적으로 문자열 모두 출력되게끔
printf("\n");
return 0;
}
RESULT:
✔ 보충할 부분
1. 문자열 배열 만들 때는 ''안에 한 글자씩 넣어줘야 한다는 것 !
2. 문자열 길이 알아내고 싶을 때는 sizeof를 이용하여 알아내기
'언어 > C' 카테고리의 다른 글
[C언어] 포인터와 배열 (1) (0) | 2023.02.16 |
---|---|
[C언어] 배열을 이용한 문자열 변수의 표현 (0) | 2023.02.13 |
[C언어] 조건문 (0) | 2023.02.03 |
[C언어] 반복문 _ Nested While 문 (while문의 중첩) (0) | 2023.01.18 |
[C언어] 반복문 (1) _ while 문 (0) | 2023.01.06 |