#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 반복문이 세번이나 반복된 것을 하나로 줄이기!. 이때 주의할 점은 마지막 배열요소 함 출력 코드는 따로 빼야함.
#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;
}
- 실수 자료형 선언 방식
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; 으로해서 헷갈림.
- 대입 연산시 암묵적 형변환 일어남.
근데 그전에 정수자료형 끼리의 나눗셈 연산하면 소수점 버림이 일어나지 않나?
- 배열에 들어있는 값 중 최대 최소값 찾는 방법 숙지!