#include <stdio.h>
int main(void)
{
int scores[3];
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
printf("Average: %i\n", (scores[0] + socres[1] + scores[2] / 3));
}
여러가지가 있지만 한마디로 확장성과 재사용성이 없다는 것.
#include <stdio.h>
const N = 3;
int main(void)
{
int scores[N];
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
printf("Average: %i\n", (scores[0] + socres[1] + scores[2] / N);
}
위에서 const는 불변의 값, 대문자로 써주는 것이 컨벤션
자바스크립트 const가 여기서 왔구나!!
#include <stdio.h>
float average(int length, int array); // float함수의 프로토 타입
int main(void)
{
int scores[3];
scores[0] = 72;
scores[1] = 73;
scores[2] = 33;
}
printf("Average: %i\n", average(int length, int array[]);
float average(int length, int array);
{
int sum = 0;
for (int i = 0; i < length; i++)
{
sum += array[i];
}
return sum / length;
}
average함수 선언위치가 실행단계보다 아래에 있어,
함수의 프로토타입을 실행구문 윗쪽에 배치
아아아 함수 프로토타입이라는 말이 여기서부터 생겨난 말이구나..!!
C에서 정수를 정수로 나누게 되면 -> 정수 리턴
int num1 / int num2
결과값이 99.999999999999999999999999999라도
위와같은 계산은
99 리턴
자바스크립트의 Math.floor와 같은 기능을 하는구나~!!
average함수의 리턴부분을
return (float) sum / (float) length;
이렇게 형 변환 해주면, 소숫점 자리까지 나오고
printf("Average: %i.1\n", average(int length, int array[]);
이렇게 .1
을 추가하면 소숫점 한자리 수까지만 보여줌
C는 다른 언어와 달리
배열의 길이를 기억하지 않는다. 무조건 명시해서 선언해 줘야 한다.
출처 : [부스트코스] 모두를 위한 컴퓨터 과학 (CS50 2019) (https://www.boostcourse.org/)