본문 바로가기
관/솔직한 c 언어 공부

c언어 기초 공부 11.(총 복습)

by 4차원 박스 2019. 12. 16.

이번 포스팅은 지금까지 c언어를 공부하며 배웠던 전반적인

내용 전체를 훑어보는 시간을 갖는다.

 

 

프로그램이란

1. 어떤 목적에 의해 잘 나열된 명령어들의 집합

프로그램 수행 단계를 잠깐 다시 보면
1. 코드를 짜고 =편집
2. 전처리단계 : 주석문 없애기, 매크로처리(#define 으로 하는것)
3. 컴파일단계 : 1문법 체크 > 목적코드 나온다(.obj)
4. 링킹 단계 : 목적코드와 내장함수(라이브러리의 함수들)를 연결해준다.
5. .exe파일 만들어지고 실행
만들어진 exe파일을 실행하면 프로세스(process) 된다고 한다
즉 실행중인 프로그램 = 프로세스 이다.(작업관리자 가서 보면 보다 직관적으로 알 수 있다.)

파이썬은 인터프리터 언어로 
한줄씩 실행하는 방식으로 작동하는점만
간단히 인지해 둔다.


매크로는 변수와 함수도 있다.

간단하게 #define a=10
#define f(x) x*x  이렇게 사용가능함(이건 매크로 함수 이다.)

물론 사용은 그냥 변수 그대로 사용하고 함수 그대로 사용하면 된다.

잠깐 더 들어가서
링킹단계를 좀더 들어가보면
dll(dynamic linking library)파일 이라는 것이 있다.

내장함수를 가져오는 방식중 하나가 dll이다
다른 하나는 static이라는 방식이다.

static은 처음부터 전부다 가져오는 방식이고 (=고정적), .lib파일 이다.
dll은 필요할때 불러서 가져오는 방식 이라는 차이점이 있다. (=유동적)

보통윈도우는 크기가 너무 크기때문에
dll파일으로 많이 구성된다.

프로그램의 구성요소

1. 그릇= 자료형 = 숫자 1.정수 2. 실수, 문자= 1.문자 2.문자열(배열)
2. 제어문 = 1.조건 2. 반복

여기까지가 지금까지 배운 프로그램 수업 내용이고 여러 다른 언어와 관련된
프로그램의 공통 기초사항 이다.


여기서 그릇을 다른 방식으로 표현 하고자 해서 나온것이 포인터와 구조체 이다.

언어하나를 익숙하게 잘 하려면 대략 2년 정도 꾸준히 하는것이 좋다.


이제 예제 몇개를 보고 마무리 한다.

#include 


/*
//1
int main()
{
int user=1;
int korean, english, math;
int total,mean;
printf("국 영 수 점수를 순서대로 적으시오:");
scanf("%d %d %d",&korean, &english ,&math);
total=korean+english+math;
mean=total/3;

printf("총점:%d, 평균:%d",total, mean);

printf("\n");
return 0;
}
*/


/*
//2
int main()
{
int user=5;
int korean, english, math;
int total,mean;
int i;
for(i=0;i<user;i++)
{
printf("%d번 학생의 국 영 수 점수를 순서대로 적으시오:",i+1);
scanf("%d %d %d",&korean, &english ,&math);
total=korean+english+math;
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);
}


printf("\n");
return 0;
}
*/

/*
//3-1
int main()
{
int user1[4]={1,90,90,100};
int user2[4]={2,90,80,80};
int user3[4]={3,90,70,50};
int user4[4]={4,90,60,80};
int user5[4]={5,90,50,100};

int total,mean; 
int i;

total=0;
printf("유저1의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user1[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);

printf("유저1의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user1[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);

printf("유저2의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user2[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);

printf("유저3의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user3[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);

printf("유저4의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user4[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);


printf("유저5의 총점과 평균=");
for(i=1;i<4;i++)
{
total+=user5[i];
}
mean=total/3;
printf("총점:%d, 평균:%d \n",total, mean);
printf("\n");
return 0;
}
*/


/*
//3-2
int main()
{
int user[5][4]={{1,90,90,100},{2,90,80,80},{3,90,70,50},{4,90,60,80},{5,90,50,100}};
int total,mean;
int i,j;
total=1;
for(i=0;i<5;i++)
{
for(j=1;j<4;j++)
{
total+=user[i][j];
}
mean=total/3;
printf("%d 번 학생의 총점:%d 평균:%d \n",i+1,total,mean);
}


printf("\n");
return 0;
}
*/



/*
//4-2 real
int main()
{
int user[5][6]={{1,90,90,100},{2,90,80,80},{3,90,70,50},{4,90,60,80},{5,90,50,100}};
int sum[5];
int average[5];
int total,mean;
int i,j;
int s=0;
int korean, english, math;
total=1;
for(i=0;i<5;i++)
{
for(j=1;j<4;j++)
{
total+=user[i][j];
}
sum[i]=total;
mean=total/3;
average[i]=mean;
printf("%d 번 학생의 총점:%d 평균:%d \n",i+1,total,mean);
}

//전체 평균
for(i=0;i<5;i++)
{
s+=average[i];
}
s=s/5;
printf("전체 5명학생의 평균 =%d \n",s);


//과목별 평균
korean=(user[0][1]+user[1][1]+user[2][1]+user[3][1]+user[4][1])/5;
english=(user[0][2]+user[1][2]+user[2][2]+user[3][2]+user[4][2])/5;
math=(user[0][3]+user[1][3]+user[2][3]+user[3][3]+user[4][3])/5;

printf("반의 국어, 영어, 수학 평균은 순서대로 %d %d %d",korean, english, math);

printf("\n");
return 0;
}
*/


/*
//5
int main()
{
int student[5][6]={{1,90,90,100},{2,90,80,80},{3,90,70,50},{4,90,60,80},{5,90,50,100}};
int total,mean;
int i,j;
int s1=0;
int s2=0;
total=1;
for(i=0;i<5;i++)
{
for(j=1;j<4;j++)
{
total+=student[i][j];
}
student[i][4]=total;
mean=total/3;
student[i][5]=mean;
}

//5명의 총점 구하기
for(i=0;i<5;i++)
{
for(j=4;j<6;j++)
{
if (j==4)
{
s1+=student[i][j];
}

if(j==5)
{
s2+=student[i][j];
}
}
}
s2=s2/5;
printf("5명의 총점:%d 평균:%d",s1,s2);

printf("\n");
return 0;
}
*/


배열을 scanf로 받을 수 있다.


int main()
{
int s[5][6];
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
scanf("%d",&s[i][j]);
}
}

for(i=0;i<5;i++)
{
for(j=0;j<6;j++)
{
printf("%d",s[i][j]);
}
}

printf("\n");
return 0;
}

요래 하면 된다.


' > 솔직한 c 언어 공부' 카테고리의 다른 글

C언어 배열이 뭘까? (2020ver).  (0) 2020.07.29
C언어 간단공부(2020ver).  (2) 2020.07.28
c언어 기초 공부 10.(배열2)  (0) 2019.12.16
c언어 기초 공부 09.(배열)  (0) 2019.11.12
c언어 기초 공부 08.  (0) 2019.11.09

댓글