9월 21일 C언어
#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;
}