내가 C언어 기초 수업을 2번 들은 이유는 무엇일까?
이전에 구름 EDU를 통해서 '처음 시작하는 C언어'라는 강의를 들었다.
그리고 이번에는 'LiteC'라는 C언어 강의를 들었다.
동일하게 C언어 기초를 다루는데 왜 나는 LiteC 강의를 수강하였을까?
그 이유는 복습과 실습 예제가 필요했기 때문이다.
사실 나는 열혈 C프로그래밍이라는 책을 이번에 구입했다.
그런데 책이 배송되기 전에 할 공부가 필요했고, 이전에 공부한 처음 시작한 C언어에서 직접 해볼 수 있는 실습 예제가 상대적으로 부족하다고 느끼던 참에 라이트C를 발견하게 되었다.
C언어의 기초 개념 중 중요한 것만 다루고 있고 간단한 연습 문제가 있어서 매우 좋았다.
그래서 오늘은 LiteC을 통해 학습한 내용들을 정리해보려고 한다.
이전에 이론 강의를 들었기 때문에 연습문제 코드 위주로 기록해보고자 한다.
#incluude <stdio.h>
int main()
{
(실행코드)
}
문제: 변수 a, b값을 지정하고 a+b, a-b, axb, a/b 출력하기
#include<stdio.h>
int main(){
int a = 20;
int b = 10;
printf("%d\n",a+b);
printf("%d\n",a-b);
printf("%d\n",a*b);
printf("%d\n",a/b);
}
현재 시각에 따라 영업 상태 표시 프로그램 만들기.
시각에 따라 각 close, coming soon, open 출력
#include<stdio.h>
#include<time.h>
int main(){
time_t tnow;
time(&tnow);
struct tm t;
localtime_r(&t, &tnow);
int a = t.tm_hour;
if (a >= 22 || 8 >= a){
printf("Close");
}
else if (a > 8 && a < 9) {
printf("Coming Soon");
}
else{
printf("Open");
}
}
반복문에서 무한하게 반복을 시행해야 하는 경우 사용.
int main()
{
while (1) {
반복할 코드
}
}
- 4의 배수 이지만 6의 배수는 아닌 수들 중 1이상 2021이하 수 모두 출력
- 모든 수 출력 시 "모든 수를 출력했습니다" 출력 후 프로그램 종료
- 수는 공백으로 구분
- break, continue 활용
#include<stdio.h>
int main(){
int a;
a = 0;
while(a < 2022){
a++;
if(a % 4 != 0){
continue;
} else if (a % 6 == 0){
continue;
}
printf("%d\n", a);
}
printf("모든 수를 출력했습니다!");
}
scanf를 이용할 경우 오류가 발생할 수 있음. 이를 막기 위해 하단과 같은 코드 추가 해야함.
#include<stdio.h>
#pragma warning(disable: 4996)
사용자의 입력을 받아 따라하기. 사용자가 stop 시 프로그램 종료 멘트와 함께 프로그램 종료
#include<stdio.h>
#include<string.h>
#pragma warning(disable: 4996)
int main() {
char abc[10000];
printf("문자열을 입력하세요.\n");
while (1) {
if (strcmp(abc, "stop")!=0) {
scanf("%s", abc);
printf("%s\n", abc);
continue;
}
else
{
break;
}
}
printf("프로그램을 종료합니다.");
return 0;
}
이 코드 작성하는게 나한테는 정말 힘들었다..
특히 저 'stop' ...ㅠㅠ
구글링을 여러번 한 끝에 나의 실 수를 알아내었다.
문자열을 비교하는 코드가 따로 있었던 것이다 ㅠ
그래도 하나 알게되어 기쁘고, 문제를 해결해서 행복했다!! 🥰
배열 {1, 6, 3, 24, 64, 33}의 변수들에 각 2를 곱해서 만든 새로운 배열을 for 반복문을 사용해서 만들기
#include<stdio.h>
int main() {
int arrayA [6] = {1, 6, 3, 24, 64, 33};
for (int i = 0 ; i < sizeof(arrayA)/sizeof(int) ; i++)
{
printf("%d\n", arrayA[i]*2);
}
}
배운 내용들을 연습 문제를 통해 복습할 수 있어서 좋았다.
특히 앞서 기술한 연습 문제들 이외에 강의 마지막 강에 있는 추가 연습문제들이 도움이 많이 된 것 같다.
그리고 강의해주시는 분이 쉽게 잘 풀어서 설명해주셔서 쉽게 이해할 수 있었다.
추가적으로 풀었던 연습문제는 따로 올리지는 않을 것이다.
궁금하시거나 풀어보시고자 하시는 분들은 하단 참조 링크를 통해 들어가서 풀어보시면 좋을 것 같다.
범고래의 SW 공작소, 가볍게 시작하는 C언어, 라이트C, 구름EDU, URL, 2021년 8월 29일 수강