B2024001225 윤지선

13주차 과제 본문

2024년 1학기/C 프로그래밍

13주차 과제

윤지선 2024. 5. 28. 13:14

지난주 학습 내용

# 함수 선언은 프로토 타입이라고 한다

# 어떤 함수 안에 있는 변수들을 지역변수

# 메인 함수 바깥쪽에 있는 함수를 전역변수

# 지역변수는 auto변수를 써도 되고 안써도 되는데 대부분 생략함

# 지역 변수는 자기 블럭 내에서만 사용 가능

# 전역 변수는 소스 전체에서 사용 가능

# 기계어로 번역된 코드는 코드(code) 영역에 저장 (쓰기 불가능)

# 프로그램에 사용할 변수 등의 데이터는 데이터 영역에 저장 (읽기 쓰기 가능)

 

 

 

# 지역변수는 스택이라는 공간에 블럭을 지정하면 여러 개가 다 만들어짐

블럭지정 = 중괄호

 

# 전역변수는 어디서나 변경될 수 있기 때문에 최소한으로 사용하는게 좋음

 

# 전역변수와 지역변수의 차이점 기억해두기!

 

예제 10.1
개수가 있으면 널 문자를 안 넣어도 괜찮음.

 

 

5번째 줄과 6번째 줄의 방법은 똑같다
배열의 초기화를 할 때 하나만 초기화 하면 나머지도 다 초기화가 됨
배열의 이름은 그 배열의 시작 주소

 

 

#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

예제 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명의 학생의 학번과 점수를 받아 총점과 평균을 구하는 코드

 

'2024년 1학기 > C 프로그래밍' 카테고리의 다른 글

14주차 과제  (0) 2024.06.04
13주차 예습과제  (0) 2024.05.28
12주차 과제  (0) 2024.05.21
12주차 예습과제  (1) 2024.05.21
11주차 과제  (0) 2024.05.14