일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 포인터
- C언어 함수
- Oracle
- C언어
- 오라클
- SQL
- Spring google
- java
- 텍스트 파일 읽기
- 역순
- placehoder
- 날짜
- jsp
- GUI
- 자바
- 구글 reCaptcha
- Spring email
- C언어 변수
- C언어 파일입출력
- C언어 배열
- URL 다운로드
- TCP/IP 소켓
- C언어 매크로
- C언어 구조체
- gcc
- Google reCaptcha
- HTML5
- C언어 메모리
- Vim
- Naver SmartEditor
- Today
- Total
easy software
C언어 2차원배열을 이용한 성적관리 프로그램 본문
뭐 제목만 거창하지, 사실 예제문제에 가깝습니다.
제목때문에 제 블로그를 찾아서 헛걸음 하신 분들 있다면 죄송합니다.
이제 본론으로 돌아가서 문제를 제시하겠습니다.
1. 사용자로부터 아래 그림에 있는 인원들의 각 과목 성적을 입력받는다.
2. 그리고 아래의 형태로 저장하여 출력해준다.
이 문제를 해결 할 수 있을 능력이면, 2차원 배열은 거의 마스터 하셨다고 봐도 됩니다.
다만, 프로그래밍 입문자인 분들이 2차원 배열을 처음 접하고 이 문제를 보면
상당히 고난이도의 문제로 느끼실 수 있습니다.
하지만 생각보다 어렵지 않으니 한번 코드를 작성해보시고, 그래도 되지않으면
아래의 제가 작성한 코드를 확인하고 이해해주시기 바랍니다.
#include <stdio.h>
int main(void){
int arr[5][5];
int sum = 0;
printf("철희, 철수, 영희, 영수순으로 국어, 영어, 수학, 도덕점수를 입력하세요.\n");
//사용자로부터 점수를 입력받음
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
scanf_s("%d", &arr[i][j]);
//학생총점을 계산하여 저장
for (int i = 0; i < 4; i++){
sum = 0;
for (int j = 0; j < 4; j++){
sum += arr[i][j];
arr[i][4] = sum;//각 행의 마지막 인덱스에 학생의 총점을 저장
}
}
//과목총점을 계산하여 저장
for (int i = 0; i < 4; i++){
sum = 0;
for (int j = 0; j < 4; j++){
sum += arr[j][i];//반복문을 통해 배열위치를 적절히 설정
arr[4][i] = sum;//각 열의 마지막 인덱스에 과목의 총점을 저장
}
}
//배열의 마지막 값을 0으로 하여 null값을 입력
arr[4][4] = 0;//0으로 해주지 않을경우 쓰레기 값으로 초기화 됨
//배열전체 출력
for (int i = 0; i < 5; i++){
for (int j = 0; j < 5; j++){
//%3d는 %d를 출력할 때 띄어쓰기(스페이스바)를 3번하고 출력하겠다는 의미
printf("%3d", arr[i][j]);
}
printf("\n");
}
return 0;
}
'C언어 > 포인터와 배열' 카테고리의 다른 글
C언어 다차원 배열과 포인터의 이해1 (0) | 2015.01.27 |
---|---|
C언어 포인터를 이용하여 Max/Min(최댓값/최솟값) 구하기 (0) | 2015.01.27 |
C언어 2차원배열에 구구단을 저장하고 출력해보자 (0) | 2015.01.25 |
C언어 2차원 배열을 이용한 구구단 저장/출력 (0) | 2015.01.25 |
C언어 2차원배열을 1차원으로 구현해보자 (0) | 2015.01.25 |