[C언어] 배열

‎주민영·2021년 8월 25일
0

미션 22: for 반복문으로 변수 최적화하기

#include <stdio.h>

main() {
	int a[5];
	int i;
	int sum = 0;
    //배열 초기화
	for (i = 0; i < 5; i++)
		a[i] = i + 1;
    //배열값 출력
	for (i = 0; i < 5; i++)
		printf("a[%d] = %d \n", i, a[i]);
    //배열 요소 값들의 합
	for (i = 0; i < 5; i++)
		sum += a[i];
	printf("모든 배열 요소의 합은 %d",sum);
}

배열요소의 합을 반복문으로 작성할 때, 합 출력은 마지막 한번만 일어나야 한다고 생각해서 반복분 쓸 생각 못함. sum 까지만 반복문으로 구하고 마지막에 한번만 sum을 출력하면 된다!

for 반복문이 세번이나 반복된 것을 하나로 줄이기!. 이때 주의할 점은 마지막 배열요소 함 출력 코드는 따로 빼야함.

미션 23 : 우리 반 학생들의 키를 저장하여 반 평균 키 출력하기

미션 24 : 다섯 과목의 성적을 배열로 입력받아 최고,최저,총합,평균 구하기

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
	int i;
	int max, min; //같은 자료형이더라도 비슷한 성격의 변수를 나눠쓰는게 좋다.
	int sum = 0;
	int a[5]; //배열 이름을 한글자로 하는게 더 편하다. 보통 a
	double average=0.0;

	for (i = 0; i < 5; i++) {
		printf("%d번째 과목 성적을 입력하세요: \n", i+1);
		scanf("%d", &a[i]);
		sum += a[i];
	}

	average = sum / 5; //cast연산자 이용하여 명시적인 형변환 할 필요 없음. 대입연산 시 암묵적 형변환 일어남.
	max = a[0];
	min = a[0];

	for (i = 0; i < 5; i++) { //최대, 최소 값 업데이트 하는 방법. 다른 방법도 있지 않나?

		if (a[i] > max)
			max = a[i];
		if (a[i] < min)
			min = a[i];
	}
	printf("모든 과목 성적 총합은 %d\n",sum);
	printf("과목 평균 값은 %f\n", average);
	printf("최고 성적 과목은 %d\n", max);
	printf("최저 성적 과목은 %d\n", min);

	return 0;
}
  1. 실수 자료형 선언 방식
    float a = 0.1f //숫자 끝에 f
    double b = 3.14 //아무것도 붙지 않음.
    long double c = 3.141592l //숫자 끝에 l
    printf("%f %f %Lf\n", a, b, c); //출력시 형식 지정자
책에서는 float average = 0.0; 으로해서 헷갈림.
  1. 대입 연산시 암묵적 형변환 일어남.
근데 그전에 정수자료형 끼리의 나눗셈 연산하면 소수점 버림이 일어나지 않나?
  1. 배열에 들어있는 값 중 최대 최소값 찾는 방법 숙지!

구글링 기록
실수 자료형 선언 : 링크텍스트
형변환 : 링크텍스트

profile
슬기로운 대학생활

0개의 댓글