// 배열을 변수로 넣어도 된다.
#include <stdio.h>
int main() {
int total;
printf("전체 학생수 : ");
scanf("%d", &total);
int arr[total]; // 배열의 크기를 변수로 선언할수도 있다.
int i, ave = 0; // 변수 선언은 최상단에 위치하지 않아도 된다.
for (i = 0; i < total; i++) {
printf("%d 번째 학생의 성적은? ", i + 1);
scanf("%d", &arr[i]);
}
for (i = 0; i < total; i++) {
ave = ave + arr[i];
}
ave = ave / total;
printf("전체 학생의 평균은 : %d \n", ave);
for (i = 0; i < total; i++) {
printf("학생 %d : ", i + 1);
if (arr[i] >= ave)
printf("합격 \n");
else
printf("불합격 \n");
}
return 0;
}
원래 안되는 것이었으나 C99 표준에 포함되었다고 한다.
Visual studio는 C 표준을 정확히 따르지 않으므로 안될 수도 있으며, gcc나 clang은 잘 작동한다. C++은 C를 완전히 포함하고 있지 않으므로 마찬가지로 안될 수 있다. 자세한 건 C++ 스터디할때 테스트 해 보자.
// 소수 프로그램
#include <stdio.h>
#include <stdbool.h> // bool형 자료(true)를 사용하기 위함.
int main(){
int guess = 5;
int prime[1000];
int index = 1;
int i;
int ok;
prime[0] = 2;
prime[1] = 3;
while(true){
ok = 0;
for (i = 0; i <= index; i++) {
if (guess % prime[i] != 0) ok++;
else break;
}
if (ok == (index + 1)) {
index++;
prime[index] = guess;
printf("소수 : %d\n", prime[index]);
if (index == 999) break;
}
guess += 2;
}
return 0;
}
// 배열 기초
#include <stdio.h>
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 배열을 처음 정의할때만 값을 입력할 수 있다.
printf("Array 3 번째 원소 : %d\n", arr[2]);
return 0;
}
주말이라... 한가롭게 맥북을 켜고 필요한 자료 공부를 하며 아내가 받아달라고 하는 자료 뒤적이다가, USB로 파일 복사하는 시간이 너무 오래 걸리기에 복사되는 거 기다릴 겸 이것 저것 웹 서핑을 조금 했다.
자료를 뒤지다가 블로그 관련 항목을 보게 되었고, 옛날 처음 블로그를 개설하였던 때가 잠시 떠올랐다.
티스토리를 개설해 놓고는 아이디와 비번을 잊어먹어, 당시 서비스를 막 시작하던 택스트큐브닷컴에 가입하고 블로그를 시작했었다. 이런 저런 개인적인 내용들을 올리기도 하고, 다른 블로거들과 친구를 맺으며 즐거운 때를 보내고 있었는데... 어느날 택스트큐브 닷컴이 블로거와 통합되어 없어진다는 공지를 보게 된다. 그 때 많은 수의 블로거들이 티스토리나 택스트큐브 등으로 이주하였었다. 일종의 엑소더스 인 셈.
그때 나도 티스토리 계정을 다시 찾고 글을 하나 하나 옮겨왔었다. 그 과정에서 다 옮겨오질 못해 일부 흘려서 아쉬움이 남기도 했다.(나중에 안 사실이지만, 글을 xml로 다운로드 받을수 있는 서비스를 해 줬던것 같다.)
아직 살아있을까... 블로거를 잠시 검색해 봤다.
블로거 란게 당시에는 생소했지만 지금 보니 구글에서 서비스하고 있다.
개인적으로 구글의 검색은 검색엔진 중 가장 광고가 적고 실제 원하는 검색 결과를 보여주기에 선호하는 서비스이다. 당시 택스트큐브닷컴을 흡수하면서 서비스를 개판으로 해 매우 좋지 않은 기억이 남아있었는데, 그게 어느 업체였는지는 기억을 못했었다. 이제 다시 보니 그게 구글이었구나..
구글에 접속하여 메뉴에서 블로거를 클릭해 들어가보니......
블로그가 아직 살아있다.
물론 블로거와 통합되며 그 형태는 완전히 바뀌었지만, 블로거는 블로거데로... 택스트큐브닷컴에서 흡수한 블로그는 또 그것대로 살아있다. 서비스 기반이 테더툴즈 기반에서 구글 자체 서비스로 넘어오다보니 예전처럼 운영하기에는 매우 어려운 구조이다. 한국형 블로그에 맞지 않기도 하고.
잠시 들어가서 예전 글들을 훑어보았다...
예전엔 글을 이렇게 썼었구나... 하며 잠시 그때를 떠올려본다. 오히려 지금보다 그때 좀 더 글을 잘 적지 않았나 싶은 생각도 든다. 글 쓸 거리만 있으면 글을 써 내려가기 시작하는 건 참 쉬웠었는데, 너무 오래 손을 놓아서인지 그때보다 지금이 글을 쓰는게 더 어려워 진 것 같다.
// 삼각형 출력
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i+=2) {
for (j = 10 - i; j >= 0; j -= 2) {
printf(" ");
}
for (k = 1; k <= i; k++) {
printf("*");
}
printf("\n");
}
printf("\n");
return 0;
}
// scanf 총 정리
#include <stdio.h>
int main() {
char ch; // 문자
short sh; // 정수
int i;
long lo;
float fl; // 실수
double du;
printf("char 형 변수 입력 : ");
scanf("%c", &ch);
printf("short 형 변수 입력 : ");
scanf("%hd", &sh);
printf("int 형 변수 입력 : ");
scanf("%d", &i);
printf("long 형 변수 입력 : ");
scanf("%ld", &lo);
printf("float 형 변수 입력 : ");
scanf("%f", &fl);
printf("double 형 변수 입력 : ");
scanf("%lf", &du);
printf("char : %c , short : %d , int : %d ", ch, sh, i);
printf("long : %ld, float : %f, double : %lf\n", lo, fl, du);
return 0;
}
// 비트 연산
#include <stdio.h>
int main() {
int a = 0xAF; // 10100101
int b = 0xB5; // 10110101
printf("a & b : %x \n", a & b); // a & b = 10100101 : AND 연산
printf("a | b : %x \n", a | b); // a | b = 10111111 : OR 연산
printf("a ^ b : %x \n", a ^ b); // a ^ b = 00011010 : NOR 연산 - 서로 다르면 1
printf("~a : %x \n", ~a ); // ~a = 1....1 01010000 : 반전 연산- 비트가 그대로 반전됨.
printf("a << 2 : %x \n", a << 2); // a << 2 = 1010111100
// 쉬프트 연산 - 왼쪽으로 2자리 이동, 이동후 오른쪽 끝 자리는 0으로 채움
printf("b >> 3 : %x \n", b >> 3); // b >> 3 = 00010110
// 쉬프트 연산 - 오른쪽으로 3자리 이동, 오른쪽에 갈 자리가 없으면 그 숫자는 버려진다.
// 왼쪽 빈자리는 원래 왼쪽 끝에 있던 숫자로 채워진다.
// b의 맨앞에 1이 있는거 같지만, int 값이므로 4바이트로 앞의 빈자리인 0 값으로 채워진다.
// b가 00000000 00000000 00000000 10110101 이므로 맨 왼쪽의 비트는 0 이다.
return 0;
}