열혈 C프로그래밍 16-1

2020. 1. 29. 02:14프로그래밍/C

문제 1.

가로의 길이가 9, 세로의 길이가 3인 int형 2차원 배열을 선언하여

구구단 중 2~4단을 저장하고 출력하자

void Ex_16_1() {

	int arr[3][9];
	int row = sizeof(arr) / sizeof(arr[0]);
	int col = sizeof(arr) / row / sizeof(arr[0][0]);
	int i, j;

	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			arr[i][j] = (i+2) * (j+1);
		}
	}

	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
}

 

문제2.

배열 A[2][4] 와 배열 B[4][2]를 선언하자 

배열 A에는 {1, 2, 3, 4, 5, 6, 7, 8} 을 초기화 하고 배열 B에는 {1, 5, 2, 6, 3, 7, 4, 8} 과 같이 초기화 하되

배열 A에 지정된 값을 이용해 초기화한다.

void Ex_16_2() {

	int arr1[2][4] = { 1, 2, 3, 4, 5, 6, 7, 8 };
	int arr2[4][2];
	int i, j;

	for (i = 0; i < 2; i++) {
		for (j = 0; j < 4; j++) {
			arr2[j][i] = arr1[i][j];
		}
	}
	
	//출력
	for (j = 0; j < 4; j++) {
		for (i = 0; i < 2; i++) {
			printf("%d ", arr2[j][i]);
		}
		printf("\n");
	}
}

 

문제 3.

성적관리 프로그램을 작성하자. 과목은 국어, 영어, 수학, 국사 이렇게 4과목이고

학생은 네 사람이다. 네 사람의 점수를 입력 받고 미리 선언해 놓은 배열 arr[5][5] 에 

총점[i][5] 과 과목별 총점[5][i] 을 계산하여 배열에 저장하고 출력하자.

void Ex_16_3() {
	
	int arr[5][5];
	int subject_sum, total;
	int i, j;
	int row = sizeof(arr) / sizeof(arr[0]);
	int col = sizeof(arr) / row / sizeof(arr[0][0]);

	//성적입력
	for (i = 0; i < row-1; i++) {
		printf("학생 [%d] 국어 영어 수학 국사 순으로 입력: ", i+1);
		for (j = 0; j < col-1; j++) {
			scanf("%d", &arr[i][j]);
		}
	}

	//학생별 총점
	for (i = 0; i < row-1; i++) {
		total = 0;
		for (j = 0; j < col-1; j++) {
			total += arr[i][j];
		}
		arr[i][4] = total;
	}

	//과목별 총점
	for (i = 0; i < row-1; i++) {
		subject_sum = 0;
		for (j = 0; j < col-1; j++) {
			subject_sum += arr[i][j];
		}
		arr[4][i] = subject_sum;
	}
	
	//출력
	for (i = 0; i < row; i++) {
		for (j = 0; j < col; j++) {
			printf("%3d ", arr[i][j]);
		}
		printf("\n");
	}
	
}

 

'프로그래밍 > C' 카테고리의 다른 글

로또 발생기  (0) 2020.01.29
열혈 C프로그래밍 17-1[이중 포인터 변수의 활용]  (0) 2020.01.29
열혈 C프로그래밍 14-1  (0) 2020.01.21
Call By value 와 Call By reference  (0) 2020.01.21
연습문제  (0) 2020.01.21