일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- #CallByAddress
- html code
- #C++ 연산자함수오버로딩
- mac terminal command
- html youtube
- #1차원배열
- html plug-in
- #binary
- 하이퍼레저패브릭
- #성적관리프로그램
- border-box
- relative path
- html id
- html multimedia
- #bubbleSort
- 토큰경제
- #자바상속#자바이즈어#is~a
- #3차원배열
- docker example
- html5 new tag
- #C++ has~a
- #다차원포인터
- #2차원배열
- git flow
- html video
- #JAVASCRIPT
- html charset
- html object
- hyperledger transaction
- #android activity
- Today
- Total
A sentimental robot
Pointer,2차원배열 본문
#include<stdio.h>
#pragma warning(disable:4996)
void main()
{
char name[3][10] = { 0, };
int score[3][4] = { 0, };
float avg[3] = { 0 };
int i, j;
char scoName[6][10] = { "Name","Kor","Eng","Mat","Total","Avg" };
//포인터 선언
char *pName = NULL; // name 접근 포인터
int *pScore = NULL; // score 접근 포인터
float *pAvg = NULL; // avg 접근 포인터
char *pScoName; //scoName 접근 포인터
//포인터 초기화
pName = *name; // name을 1차원 주소로 타입맞추기(포인터가 1차원주소를 가르키는 타입이기 때문) ★
pScore = *score;
pAvg = avg;
pScoName = *scoName;
for (i = 0; i < 3 ; i++)
{
printf("input %s:", pScoName);
rewind(stdin);
scanf("%s", pName + (i * 10)); // 1차원 주소인 pName의 한 행을 건너뛰기 위해 * 10 ( character의 byte )
for (j = 0; j < 3 ; j++)
{
printf("input %s:", pScoName + (1 + j) * 10);
rewind(stdin);
scanf("%d", pScore + (i * 4) + j); // pScore 한 행 (int 4byte)를 건너뛰기 위해 *4
*(pScore + (i * 4) + 3) += *(pScore + (i * 4) + j);
}
}
//전체출력
for (i = 0; i < 6; i++)
{
printf("%s\t", pScoName + i * 10);
}
puts("");
for (i = 0; i < 3; i++)
{
printf("%s\t", pName + (i * 10));
for (j = 0; j < 4; j++)
{
printf("%d\t", *(pScore + (i * 4) + j));
}
printf("%f", *(pAvg + i));
puts("");
}
}
'C ' 카테고리의 다른 글
함수와 포인터를 사용한 1차원배열 (0) | 2017.12.29 |
---|---|
Call by address (0) | 2017.12.29 |
[ ]대신*만을 이용한 2차원배열 (0) | 2017.12.29 |
Pointer (0) | 2017.12.29 |
[ ]대신*를 사용한 1차원 배열 (0) | 2017.12.29 |