Python

코딩을 배워보자!!(3)

25G 2021. 2. 24. 18:44

이 글은 코딩을 배우려 하시는 분들 보단 코딩을 처음 배우는 사람은 이렇구나 하는 마음으로 봐주시기 바랍니다 ㅎㅎ

 

어제는 학원에서 PYTHON에서 입력과 출력,변수 등등을 배워봤는데요!! 오늘은 같은 주제를 C언어에서 하는 법을 배워 봤어요!! 초심자 입장에서 PYTHON은 뭔가 똑똑한 콤푸타랑 얘기하는 기분이었는데 C언어는 뭔가 나사 하나가 빠진?! 그런 콤푸타랑 얘기하는 그런 느낌이었어요ㅠㅠ 뭔가 하나하나 다 가르쳐줘야 하는 그런 느낌이랄까요?! ㅋㅋㅋㅋㅋㅋ

그래서 오늘 C언어로 해볼 내용은 바아아로롤~~~~~~!!~!!~~!~

 -출력

 -변수

 -배열

이랍니다!!! 그럼 당연히 출력부터 시작해 볼까요?!

 

 

우리가 흔히 컴퓨터에서 자주 쓰는 데이터는 뭐가 있을까요?! 보통 특별한 일이 없는 이상 정수, 실수, 문자, 문자열 이렇게 우리는 네 가지 정도의 데이터를 일상생활에서 쓰는 것 같아요. C언어에서는 PYTHON과 다르게 각각의 성격이 다른 데이터를 "형식 지정자"를 통해서 이 데이터를 어떤 식으로 처리해야 할지 코드를 써줘야 하더군요!
그래서 오늘 배운 형식 지정자는 이런 코드로 명령을 할 수 있습니다
정수"%d"
실수"%lf"
문자''%c"
문자열"%s"
형식 지정자  = "%s""%c'"%lf""%d"

그리고 C언어의 특이한 점은! JAVA나 PYTHON과는 다르게 출력되는 프로그램에서 스스로 횡을 띄어주지 않습니다 쉽게 말씀드리자면 키보드에 엔터키가 없는 셈이죠! 그래서 계횡할때의 명령어가 있는데 바로 "\n"입니다!
그럼 이들을 활용해서 코드를 써볼까요?!

 

ex)1


#include <stdio.h>

int main() {

//정수
printf("정수 = %d(형식 지정자)\n(키보드로 치면 엔터 역할)", 175);

//실수
printf("실수 = %lf\n", 3.14);
//문자
printf("문자 = %c\n",'A');
//문자열
printf("문자열 = %s\n","Hello World~!");

 

return 0;
}

 

를 실행 시켜 보면

 

정수=175

실수=3.14

문자=A

문자열 = Hello World~!

 

라고 출력되는 것을 볼 수 있을 겁니다!

 

그럼 이제 본격적으로 조콤더 복잡한 걸로 넘어가 볼까요?!

다음 배웠던 것은 변수입니다!

 


변수=(무언가를 저장하는 박스)라고 생각하시면 편하실 거예요

변수 또한 c언어에서 표현하려면 각 데이터의 성격에 따라 입력하는 코드가 따로 있습니다

이렇게요!


// 정수
int val1;

// 실수
double val2;

//문자
char val3;


//문자열
char val4[5];

이렇게 지정된 명령에는 지정된 데이터만 들어가야 하고요 꼭 용도에 맞게 데이터를 저장해야 합니다!

그리고 한 번에 한 데이터만 입력할 수 있다고 했어요! 그렇게 변수를 다 저장하셨으면 이제 출력을 해야겠죠?!

제가 배운 출력방법은 printf 밖에 없어요 ㅠㅠ이걸로 출력해 보겠습니다~!

그럼 오늘 해본 코드로 예시를 볼까요?!

 

ex)2


#include <stdio.h>

int main() {

int(정수의 변수) add(변수) = 10 + 20;
int min =10 - 20;
int mul = 10 * 20;
int div = 10 / 20;
printf("덧셈 = %d\n", add);
printf("뻴셈 = %d\n", min);
printf("곱셈 = %d\n", mul);
printf("나눗셈 = %d\n", div);

 

이렇게 프로그램을 실행을 하면 

 

덧셈 = 30

뻴셈 = -10

곱셈 = 200

나눗셈 = 0

 

이렇게 출력이 되는데요 여기서 문제가 있습니다! 바로 저의 컹스한 코드죠>?,,,,네,,, 코딩 3일 차요,,ㅎㅎ,,

그게 아니라!!!!ㅜㅜ 10 /20의 원래 답은 0.5입니다! 이런!?!? 원숭이도 나무에서 떨어진다더니 컴프 타도 계산을 틀리는 경우도 있네!!ㅎㅎ하하하고 웃어넘기시면 큰일 나는 거죠?! 왜냐고요? 당연히 콤푸타가 잘못해서 결과가 잘못나오는 경우는 없다고 했어요! 그럼 그 이유가 뭔가 했더니! 나눗셈할때 코드를 보시면 확정지정자가 정수의 지정자인 %n으로로 돼있는 것을 볼 수 있습니다! 그래서 우리의 콤푸타가 정수로 알아먹고 정수로 출력 해 버린 것이지요!

그래서 선생님께서 C언어를 할 때에는 이 부분을 항상 신경 써서 코드를 작성해야 한다고 하셨어요 ㅠㅜC언어 이 어려운 녀석,,, ㅠㅠ 그래서 ex)3과 같이 작성 하시면 올바른 결과값을 볼수 있으실 겁니다!

 

ex)3

int add1 = 10 + 20;
int min1 = 10 - 20;
int mul1 = 10 * 20;
double div1 = 10.0 / 20.0;
printf("덧셈 = %d\n", add1);
printf("뻴셈 = %d\n", min1);
printf("곱셈 = %d\n", mul1);
printf("나눗셈 = %lf\n", div1);

이런 식으로 int가 아닌 double이란 실수 타입 변수로 저장을 하고 실수로 계산한 후 %lf로 출력하면! 콤푸타가 찰떡같이 알아먹고 정답을 내놓습니다!

 

좀 더 여러 자료 들을 출력 해 본다면!!

 

ex)4

int kor1;
int mat1;
int eng1;
int sum1;
double avg1;

int kor2;
int mat2;
int eng2;
int sum2;
double avg2;

kor1 = 84;
mat1 = 62;
eng1 = 55;
sum1 = kor1 + mat1 + eng1;
avg1 = sum1 / 3.0;

kor2 = 91;
mat2 = 28;
eng2 = 72;
sum2 = kor2 + mat2 + eng2;
avg2 = sum2 / 3.0;

printf("철수의 국어점수 = %d\n", kor1);
printf("철수의 수학점수 = %d\n", mat1);
printf("철수의 영어점수 = %d\n", eng1);
printf("철수의 총점 = %d\n", sum1);
printf("철수의 평균 = %lf\n", avg1);

printf("영희의 국어점수 = %d\n", kor2);
printf("영희의 수학점수 = %d\n", mat2);
printf("영희의 영어점수 = %d\n", eng2);
printf("영희의 총점 = %d\n", sum2);
printf("영희의 평균 = %lf\n", avg2);

return 0;

이렇게 코드를 작성하고 출력하면?! 


덧셈 = 30
뻴셈 = -10
곱셈 = 200
나눗셈 = 0
덧셈 = 30
뻴셈 = -10
곱셈 = 200
나눗셈 = 0.500000
철수의 국어점수 = 84
철수의 수학점수 = 62
철수의 영어점수 = 55
철수의 총점 = 201
철수의 평균 = 67.000000
영희의 국어점수 = 91
영희의 수학점수 = 28
영희의 영어점수 = 72
영희의 총점 = 191
영희의 평균 = 63.666667

 

이렇게 출력된답니다! 참고해 주세요 ㅎㅎ
하지만 여러분.,,. 이 거너 무 코드가 길고 불편하지 않나요?!  이렇게 하면 너무 코드가 많잖아요!!!ㅠㅠ

그래서 똔땡님께서 배열이라는 방식을 가르쳐주십니다!

 

배열은 어제 Python에서 '리스트'를 해봐서 그런지 그렇게 어렵지 않았어요!! 코드를 입력하는 게 달라서 그렇지 방식은 거진 비슷했어요!



배열 = 데이터들을 저장하는 법

 

ex)5

int main() {
int(정수타입 변수) korarray(변수)[4](변수 수) = { 84,93,52,42 };
int matarray[4] = { 62,21,56,23 };
int engarray[4] = { 75,23,56,45 };
//                         0   1   2   3 컴퓨터는 숫자를 0부터 셉니다 중요!
int student1[3] = { 84,62,52 };
//                         0   1   2 
int student2[3] = { 93,21,23 };
//                         0   1   2 
int student3[3] = { 52,56,56 };
//                         0   1   2 
int student4[3] = { 42,23,45 };


printf("철수의 국어점수 = %d\n", student1[0]);
printf("철수의 수학점수 = %d\n", student1[1]);
printf("철수의 영어점수 = %d\n", student1[2]);

printf("영희의 국어점수 = %d\n", student2[0]);
printf("영희의 수학점수 = %d\n", student2[1]);
printf("영희의 영어점수 = %d\n", student2[2]);

printf("길동의 국어점수 = %d\n", student3[0]);
printf("길동의 수학점수 = %d\n", student3[1]);
printf("길동의 영어점수 = %d\n", student3[2]);

printf("영수의 국어점수 = %d\n", student4[0]);
printf("영수의 수학점수 = %d\n", student4[1]);
printf("영수의 영어점수 = %d\n", student4[2]);

로 출력하면~?

철수 국어점수 = 84
철수 수학점수 = 62
철수 영어점수 = 75
영희 국어점수 = 93
영희 수학점수 = 21
영희 영어점수 = 23
길동 국어점수 = 52
길동 수학점수 = 56
길동 영어점수 = 56
영수 국어점수 = 42
영수 수학점수 = 23
영수 영어점수 = 45

 

이렇게 나온답니다. 이렇게 뭔가 프로그램이 오류 없이 나오면 뭔가 희열감이 있습니다 ㅎㅎ 생각보다 재밌어요 코딩!!

 

이번엔 좀 더 응용해서 총점과 평균도 구해 봤습니다!

 

ex)6

#include <stdio.h>

int main() {
int korarray[4] = { 84,93,52,42 };
int matarray[4] = { 62,21,56,23 };
int engarray[4] = { 75,23,56,45 };

int sumarray[4] = { 0,0,0,0 };
    sumarray[0] = korarray[0] + matarray[0] + engarray[0];
sumarray[1] = korarray[1] + matarray[1] + engarray[1];
sumarray[2] = korarray[2] + matarray[2] + engarray[2];
sumarray[3] = korarray[3] + matarray[3] + engarray[3];

double avgarray[4] = { 0.0, 0.0, 0.0, 0.0 };
avgarray[0] = sumarray[0] / 3.0;
avgarray[1] = sumarray[1] / 3.0;
avgarray[2] = sumarray[2] / 3.0;
avgarray[3] = sumarray[3] / 3.0;

//변숫값을 사용할 때는 위에서 아래로 계산 순서대로 사용해야 컴퓨터가 인식할 수 있음


printf("철수 국어점수 = %d\n", korarray[0]);
printf("철수 수학점수 = %d\n", matarray[0]);
printf("철수 영어점수 = %d\n", engarray[0]);
printf("철수 총점 = %d\n", sumarray[0]);
printf("철수 평균 = %lf\n", avgarray[0]);

printf("영희 국어점수 = %d\n", korarray[1]);
printf("영희 수학점수 = %d\n", matarray[1]);
printf("영희 영어점수 = %d\n", engarray[1]);
printf("영희 총점 = %d\n", sumarray[1]);
printf("영희 평균 = %lf\n", avgarray[1]);

printf("길동 국어점수 = %d\n", korarray[2]);
printf("길동 수학점수 = %d\n", matarray[2]);
printf("길동 영어점수 = %d\n", engarray[2]);
printf("길동 총점 = %d\n", sumarray[2]);
printf("길동 평균 = %lf\n", avgarray[2]);

printf("영수 국어점수 = %d\n", korarray[3]);
printf("영수 수학점수 = %d\n", matarray[3]);
printf("영수 영어점수 = %d\n", engarray[3]);
printf("영수 총점 = %d\n", sumarray[3]);
printf("영수 평균 = %lf\n", avgarray[3]);

return 0;
}

로하면

철수 국어점수 = 84
철수 수학점수 = 62
철수 영어점수 = 75
철수 총점 = 221
철수 평균 = 73.666667
영희 국어점수 = 93
영희 수학점수 = 21
영희 영어점수 = 23
영희 총점 = 137
영희 평균 = 45.666667
길동 국어점수 = 52
길동 수학점수 = 56
길동 영어점수 = 56
길동 총점 = 164
길동 평균 = 54.666667
영수 국어점수 = 42
영수 수학점수 = 23
영수 영어점수 = 45
영수 총점 = 110
영수 평균 = 36.666667
로 출력됐습니다!!! 하하핳 


오늘은 3시간 정도의 수업이 정말 눈 깜짝할 새에 지나가 버렸는데요 C언어를 배우면 하드웨어에 소프트웨어를 개발하는 개발자로 취직을 해서 그 분야에 일을 할 수 있다고 합니다!

저는 어떤 언어를 배워서 어느 길로 가야 할까요?! 선생님께선 어느 언어를 배우든 하나를 마스터하면 다른 언어로 넘어가는 건 언어들이 다 비슷해서 크게 어려운 일이 아니라고 하셨어요!!! 그도 그럴 것이 어젠 python을 해보고 오늘은 c언어를 해 봤는데 비록 둘 다 완전 초급과정만 했지만 비슷해서 어제와 다른 언어를 배웠지만 그렇게 어렵지 않았어요!

저는 어떤 분야에 개발자가 되는 게 좋을까요?! 참 고민이 가 됩니다 ㅎㅎ

그럼 여러분들도 오늘 하루 고생하셨고 잘 자요~~~

'Python' 카테고리의 다른 글

파이썬을 배워보자 (문자열)  (0) 2021.03.19
파이썬을 배워보자 (기본 연산자)  (0) 2021.03.19
파이썬을 배워보자 (format 메서드)  (0) 2021.03.19
코딩을 배워보자!!(2)  (0) 2021.02.23
코딩을 배워보자!! (1)  (0) 2021.02.22