2016. 4. 22. 16:58ㆍ네트워크 보안 수업/C언어
포인터 배열
- 주소를 원소로 갖는 배열
ex) char *arr[]
배열 포인터
- 배열을 나타내는 포인터
- 다차원 배열
#include <stdio.h>
void print_array(int (*ptr)[3])
{
int i=0;
int j=0;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d ",ptr[i][j]);
}
printf("\n");
}
}
int main(int argc, char *argv[])
{
int arr2[2][3]={{1,2,3},{4,5,6}};
print_array(arr2);
return 0;
}
[실습]
- 학생 2명의 국어, 영어, 수학 점수의 총합과 평균을 구하는 함수를 작성
- 2차원 배열을 사용
#include <stdio.h>
void func(int (*score)[5])
{
int i=0;
int j=0;
int sum=0;
int avr=0;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
sum=sum+score[i][j];
score[i][3]=sum;
score[i][4]=sum/3;
}
sum=0;
printf("sum: %d\n",score[i][3]);
printf("average: %d\n",score[i][4]);
}
}
int main(int argc, char *argv[])
{
int student[2][5]={{80,90,60,0,},{76,88,93,0,}};
func(student);
return 0;
}
대화식 프로그래밍
- 표준 출력: printf()
- 표준 출력 장치(모니터)로 내용을 쓰겠다.
- 표준 입력: scanf, gets, fgets, ...
- 표준 입력 장치(키보드)로 내용을 입력받겠다.
scanf
- int scanf(const char *format, ...);
[실습]: 성적처리
- 학생 3명의 국어, 영어, 수학 점수를 입력받아서
- 각 학생의 총합과 평균을 구하는 프로그램을 작성
#include <stdio.h>
void func(int (*score)[5])
{
int i=0;
int j=0;
int sum=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
sum=sum+score[i][j];
score[i][3]=sum;
score[i][4]=sum/3;
}
sum=0;
printf("sum: %d\n",score[i][3]);
printf("average: %d\n",score[i][4]);
}
}
int main(int argc, char *argv[])
{
int kor=0;
int eng=0;
int math=0;
int student[3][5]={0,};
int loop1=0;
int loop2=0;
for(loop1=0;loop1<3;loop1++){
for(loop2=0;loop2<3;loop2++){
if(loop2==0){
printf("kor score: ");
scanf("%d",&kor);
student[loop1][loop2]=kor;
}else if(loop2==1){
printf("eng score: ");
scanf("%d",&eng);
student[loop1][loop2]=eng;
}else if(loop2==2){
printf("math score: ");
scanf("%d",&math);
student[loop1][loop2]=math;
}
}
}
func(student);
return 0;
}
[과제]
- 5명의 전화번호를 입력받아 출력해주는 프로그램을 작성
1. 입력
2. 출력
3. 종료
exit(0);
return 0;
최대 5개의 전화번호를 한번에 입력
-------------------------------------------------------------------------------------------
#include <stdio.h>
void insert(char (*number)[13])
{
int loop1;
int i;
printf("you must insert\"-\"\n");
for(loop1=0;loop1<5;loop1++){
printf("insert number(%d) : ",loop1+1);
scanf("%s",&number[loop1][0]);
}
}
void print(char (*number)[13])
{
int loop1;
int loop2=0;
for(loop1=0;loop1<5;loop1++){
for(loop2=0;loop2<13;loop2++){
printf("%c",number[loop1][loop2]);
}
printf("\n");
}
}
int main(int argc, char *argv[])
{
int loop1;
int i=0;
int j=0;
int loop2;
char phone[5][13]={0,};
int sel=0;
while(1){
printf("1.insert\n2.print\n3.exit\n");
printf("insert number : ");
scanf("%d",&sel);
if(sel==1){
printf("you insert number 1, insert\n");
insert(phone);
sel=0;
}else if(sel==2){
printf("you insert number 2, print\n");
print(phone);
}else if(sel==3){
printf("you insert number 3, exit\n");
return 0;
}else {
break;
}
}
}
------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
void insert(char (*number)[13],int j)
{
int loop1;
int i;
printf("you must insert\"-\"\n");
printf("insert number(%d) : ",j+1);
scanf("%s",&number[j][0]);
}
void print(char (*number)[13], int j)
{
int loop1;
int loop2=0;
for(loop1=0;loop1<j;loop1++){
for(loop2=0;loop2<13;loop2++){
printf("%c",number[loop1][loop2]);
}
printf("\n");
}
}
int main(int argc, char *argv[])
{
int loop1;
int i=0;
int j=0;
int loop2;
char phone[5][13]={0,};
int sel=0;
while(1){
printf("1.insert\n2.print\n3.exit\n");
printf("insert number : ");
scanf("%d",&sel);
if(sel==1){
if(j<5){
printf("you insert number 1, insert\n");
insert(phone, j);
sel=0;
j=j+1;
}else {
printf("you already insert five numbers!\n");
}
}else if(sel==2){
printf("you insert number 2, print\n");
print(phone, j);
}else if(sel==3){
printf("you insert number 3, exit\n");
return 0;
}else {
break;
}
}
}
'네트워크 보안 수업 > C언어' 카테고리의 다른 글
네트워크 보안 수업 20일차 - 코리아 정보보안 IT학원 (0) | 2016.04.25 |
---|---|
네트워크 보안 수업 18일차 - 코리아 정보보안 IT학원 (0) | 2016.04.21 |
네트워크 보안 수업 17일차 - 코리아 정보보안 IT학원 (0) | 2016.04.20 |
네트워크 보안 수업 16일차 - 코리아 정보보안 IT학원 (0) | 2016.04.19 |
네트워크 보안 수업 15일차 - 코리아 정보보안 IT학원 (0) | 2016.04.18 |