B2024001225 윤지선
13주차 과제 본문
# 함수 선언은 프로토 타입이라고 한다
# 어떤 함수 안에 있는 변수들을 지역변수
# 메인 함수 바깥쪽에 있는 함수를 전역변수
# 지역변수는 auto변수를 써도 되고 안써도 되는데 대부분 생략함
# 지역 변수는 자기 블럭 내에서만 사용 가능
# 전역 변수는 소스 전체에서 사용 가능
# 기계어로 번역된 코드는 코드(code) 영역에 저장 (쓰기 불가능)
# 프로그램에 사용할 변수 등의 데이터는 데이터 영역에 저장 (읽기 쓰기 가능)
# 지역변수는 스택이라는 공간에 블럭을 지정하면 여러 개가 다 만들어짐
블럭지정 = 중괄호
# 전역변수는 어디서나 변경될 수 있기 때문에 최소한으로 사용하는게 좋음
# 전역변수와 지역변수의 차이점 기억해두기!
#include <stdio.h>
int main(void)
{
int han[10] = { 10,20 };//배열 초기화
int x = 10; //변수 초기화
printf("%d %d %d %d\n", han[0], han[1], han[2], han[9]);
x = 20;
han[0] = 1; // 대입
han[1] = 2; // 대입
han[2] = 3; // 대입
printf("%d %d %d %d\n", han[0], han[1], han[2], han[9]);
return 0;
}
예제 10.4
# 배열의 이름은 그 배열의 시작 주소( = 첫번째 방의 주소 = (첫번째 원소)이 저장된 곳의 주소)
ex) int han[10] = {10, 20} => 10이 저장된 곳의 주소는 han
#include <stdio.h>
int main(void)
{
int i;
char st[]="soft";
char ch[]={'s', 'o', 'f', 't', '\0'};
for(i=0;i<5;i++)printf("st[%d] 주소 %p =%c\n",i,&st[i], st[i]);
for(i=0;i<5;i++)printf("ch[%d] 주소 %p =%c\n",i,&ch[i], ch[i]);
return 0;
}
예제 10.15
# 널문자는 출력해도 눈에 보이지 않음
# 배열의 이름은 그 배열의 시작 주소를 가지고 있기 때문에 scanf로 값을 받을 때 &(주소연산자)를 쓰지 않음
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, num[5], kor[5], eng[5], mat[5], c[5], total[5];
double avgkor = 0.0, avgeng = 0.0, avgmat = 0.0, avgc = 0.0;
double avg[5];
printf(" ---------------------------\n");
printf(" 성적 처리 프로그램입니다. \n");
printf(" ---------------------------\n");
for (i = 0; i < 5; i++) {
printf("%d번째 학생의 학번을 입력하고 Enter를 누르세요:", i + 1);
scanf("%d", &num[i]);
printf("국어 점수를 입력하고 Enter를 누르세요:");
scanf("%d", &kor[i]);
printf("영어 점수를 입력하고 Enter를 누르세요:");
scanf("%d", &eng[i]);
printf("수학 점수를 입력하고 Enter를 누르세요:");
scanf("%d", &mat[i]);
printf("C언어 점수를 입력하고 Enter를 누르세요:");
scanf("%d", &c[i]);
total[i] = kor[i] + eng[i] + mat[i] + c[i]; //각 학생의 총점
avg[i] = total[i] / 4.0; //각 학생의 평균
avgkor = avgkor + kor[i]; //국어 점수 누적
avgeng = avgeng + eng[i]; //영어 점수 누적
avgmat = avgmat + mat[i]; //수학 점수 누적
avgc = avgc + c[i];
}
printf(" ---------------------------\n");
printf(" 성 적 처 리 결과입니다. \n");
printf(" ---------------------------\n");
printf("학번 총점 평균\n");
for (i = 0; i < 5; i++) {
printf("%3d %6d %7.2f\n", num[i], total[i], avg[i]);
}
printf("국어 평균: %.1f\n영어 평균: %.1f\n수학 평균: %.1f\nC언어 평균: %.1f",
avgkor / 5., avgeng / 5., avgmat / 5., avgc / 5);
return 0;
}
5명의 학생의 학번과 점수를 받아 총점과 평균을 구하는 코드