수업/C언어 강의

9월 21일 C언어

멜데스 2012. 9. 21. 17:45

#include<stdio.h>

/*

int main(){

int a= 10;

printf("%d\n",a);

return 0;

}

*/

/*

void f1(); //함수 원형 선언

int globalv; //전역 변수 선언


int main(){

int localv=10; //지역변수 선언

globalv=123; //위에 있는 int globalv 값 할당

printf("f1함수를 호출하기 전의 localv = %d\n", localv); //10

printf("f1함수를 호출하기 전의 globalv = %d\n", globalv); //123

f1(); //함수를 호출한다. 그러면 밑에있는 void f1()함수로 간다.

printf("f1함수를 호출한 후의 localv = %d\n", localv); //10

printf("f1함수를 호출한 후의 globalv = %d\n", globalv); //321 -> 이미 최종적으론 globalv는 321로 바뀐상태기 때문에

return 0;

}


void f1(){ //함수

int localv = 20; //지역변수 선언

globalv = 321; //값 할당

printf("f1 함수 안의 localv = %d\n", localv); //20

printf("f1 함수 안의 globalv = %d\n", globalv); //321

}

*/


/*

#include<stdio.h>


int main(){

int a=10;

printf("main 함수 안에서 선언된 a= %d\n" ,a); //10

{

int a= 20;

printf("블럭 안에서 선언된 a= %d\n", a); //20

}

printf("a = %d\n",a);


return 0;

}


*/


/*

#include<stdio.h>


void f1(); //함수 원형 선언

int a,b,aa,bb;//전역 변수


int main(){

a = 30;

b =20;

f1(); //함수 호출 ()안에 값을 주면 void f1()에 값을 주어야하지만

//전역변수를 사용하였기 떄문에 전체 공유할수 있는 함수라서 

//굳이 값을 쓰지 않아도된다. 그러나 값이 변질될 우려가 있다.

//모두 공유해서 사용하는 함수이기 때문에 어떤 것이 

//값을 변경시킬 수 있다.

printf("a = %d\n", a);

printf("b = %d\n", b);

printf("aa = %d\n", aa);

printf("bb = %d\n", bb);

return 0;

}

void f1(){

aa= a+ b;

bb = a-b;

*/



//외부변서 extern int a;


//정적변수 : 자동변수와 외부 변수의 중간적 성격

//자동변수 처럼 함수 안에서만 사용, 외부변수처럼 함수의 실행이 끝나도

//메모리에 값이 남아있따. static 이라는 키워드를 사용

//지역변수 처럼 함수 안에서 선언된다.


/*

#include<stdio.h>


void f1();//함수 원형 선언


int main(){

int i;

for(i=1;i<=3;i++){

printf("함수를 %d번째 호출하였습니다.\n", i);

f1(); //함수 호출

}

return 0;

}


void f1(){ //함수

int a= 0; //지역변수 선언

static int b; //정적 변수

a=a+1;

b=b+1;

printf("자동 변수 a =%d\n", a);

printf("정적 변수 b = %d\n", b);

}

//static 변수 : 모양은 지역변수처럼 함수 안에 사용되지만 값은 전역변수처럼 남아있어서

//누적된다.


*/

/*

#include<stdio.h>


//5개의 숫자 입력 받아서 출력

int main(){

int i, a[5]; //배열선언 (0~4까지 5개)

for(i=0;i<5;i++){

scanf("%d", &a[i]);

}//입력


//출력하는 코드 작성하기

for(i=0;i<5;i++){

printf("%d ", a[i]);

}

return 0;

}


int main(){ //배열에 일일이 대입

int i, a[5];

a[0] = 10;

a[1] = 20;

a[2] = 30;

a[3] = 40;

a[4] = 50;

for(i=0;i<5;i++){

printf("%d ",a[i]);

}

printf("\n");

return 0;

}


int main(){ //한 번에 값을 입력하는 방법(한 방 대입)

int i, a[5] = {10,20,30,40,50}; //선언과 동시에 값 대입

for(i=0;i<5;i++)

{

printf("%d ", a[i]);

}

printf("\n");

return 0;

}


int main(){

int i, a[5] = {10.20,};

int b[7] = {0,};

int c[3];


for(i=0;i<=4;i++){

printf("%d ", a[i]);

}

printf("\n");

for(i=0;i<=7;i++){

printf("%d ", b[i]);

}

printf("\n");

for(i=0;i<=3;i++){

printf("%d ", a[i]);

}

printf("\n");


*/


/*

//다차원 배열

#include<stdio.h>


int main(){

int i, j, k;

int a[3]; //1차원 배열

int b[5][5] = {{1,2,3,4,5},{5,6},}; //2차원 배열

int c[2][3][4] = {{{0,},},}; //3차원 배열

for(i=0;i<3;i++){

a[i]=i; //값 할당

}

for(i=0;i<5;i++){

for(j=0;j<5;j++){

printf("%d ", b[i][j]);

}

printf("\n");

}

for(i=0;i<2;i++){

for(j=0;j<3;j++){

for(k=0;k<4;k++){

printf("%d ", c[i][j][k]);

}

printf("\n");

}

}

return 0;

}


1 2 3 4 5

5 6 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

*/

/*

#include<stdio.h>


int main(){

int i;

int m[5][3];

//이증 for로 변경하기

for(i=0;i<5;i++){

for(j=0;j<3;j++){

printf("%d번 학생의 국,영,수 성적을 차례로 입력\n", i+1);

scanf("%d", &m[i][j]);

}

}


printf("국어, 영어, 수학 성적을 출력합니다.\n");

for(i=0;i<5;i++){

printf("%d 번 학생의 국어 성적 = %d점, ", i+1, m[i][0]);


*/


//10명의 국어 점수를 입력 받아서 총점과 평균을 출력하세요.

//(배열 사용)

//1등과 꼴등을 출력하시오.

#include<stdio.h>


int main(){

int i,a,s=0;

int m[10];

int max=0, min=100;


for(i=0;i<10;i++){

printf("%d번 학생의 국어 점수를 입력하시오.", i+1);

scanf("%d", &m[i]);

if(max < m[i]){

max = m[i];

}

if(min > m[i]){

min = m[i];

}

}

for(i=0;i<10;i++){

s=s+m[i]; //총점

}


a=s/10; //평균


printf("학생들의 국어 점수 총합은 %d이다. \n",s);

printf("학생들의 국어 점수 평균은 %d이다. \n",a);

printf("1등은 %d번째 학생입니다.",max);

printf("꼴등은 %d번째 학생입니다.",min);

return 0;

}