레이블이 #C언어인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #C언어인 게시물을 표시합니다. 모든 게시물 표시

7.10.2017

07.10 자료구조

// gkfk0316@gmail.com chiz7@naver.com


/*
#include <stdio.h>
void main() {
  void *ptr;
  int a = 3;
  char b = 'A';
  ptr = (int *)&a; //ptr이 int 형이 아니라서 (int*)해줘야함
  printf("%d\n", *(int*)ptr); //void형이라서 형변환 2번 해줘야함
  ptr = (char*)&b;
} */

//수학에서의 집합 : set - 서로 다른 원소들의 모임
// {1,3,5} 1 {1,3,5}
//bag = {1,3,5} 1 {1,3,5,1}

========================================================================

int check(int *pA, int num) {  //중복이면, 출력문 중복
  for (int i = 0; i < 3; i++) {
    if (pA[i] == num) return 1;
  }
  return 0;
}

void add(int *pA, int num) {
  if (check(pA, num)) {
    printf("중복임");
    return;
  };
  pA[3] = num;
}

void main() {
  int arr[5] = { 1,3,5 };
  int num;
  printf("{");
  for (int i = 0; i < 3; i++) {
    printf("%d", arr[i]);
    if (i == 3) break;
    printf(", ");
  } printf("\n추가할 원소를 입력하세요 : ");
  scanf("%d", &num);
  add(arr, num);
  printf("{");
  for (int i = 0; i < 4; i++) {
    printf("%d", arr[i]);
    if (i == 3) break;
    printf(", ");
  } printf("}\n");
}


/*{1,2,3,4,5,6,7,8}
{1,2,3,4,0,5,6,7,8} // memmove
{1,2,3,4,9,5,6,7,8} // insert_arr
*/

========================================================================

#include <stdio.h>
int size = 8;
void memmove(int *pA, int index) {
  int arr[10] = { 0 };
  for (int i = 0; i < size; i++) {
    arr[i] = pA[i];
    if (i > index)
      arr[i] = pA[i-1];
  }
  for (int i = 0; i < size; i++) { 
    pA[i] = arr[i];
  }
  pA[index] = 0;
}

//메모리의 특정 소스를 몰적 위치로 복사하며, 기존에 있던 데이터는 size 만큼 이동
// 1. 요소가 복사될 위치 필요
// 2. 복사할 요소가 있는 위치
// 3. 이동할 사이즈

void insert_arr(int *pA, int index, int num) {
  size++;
  memmove(pA, index);
  pA[index] = num;
}

void main() {
  int arr[10] = { 1,2,3,4,5,6,7,8 };
  printf("memmove() 전\n");
  for (int i = 0; i < size; i++) {
    printf("%2d", arr[i]);
  }

  insert_arr(arr, 3, 4);
  memmove(arr, 3);
  printf("\nmemmove() 후\n");
  for (int j = 0; j < size; j++) {
    printf("%2d", arr[j]);
  }
}

자료구조

#include <stdio.h>
int check(int *pA, int num) {  //중복이면, 출력문 중복
        for (int i = 0; i < 3; i++) {
if (pA[i] == num) return 1;
}
return 0;
}
void add(int *pA, int num) {
if (check(pA, num)) {
printf("중복임");
return;
};
pA[3] = num;
}

void main() {
int arr[5] = { 1,3,5 };
int num;
printf("{");
for (int i = 0; i < 3; i++) {
printf("%d", arr[i]);
if (i == 3) break;
printf(", ");
} printf("\n추가할 원소를 입력하세요 : ");
scanf("%d", &num);
add(arr, num);
printf("{");
for (int i = 0; i < 4; i++) {
printf("%d", arr[i]);
if (i == 3) break;
printf(", ");
} printf("}\n");
}

7.08.2017

07.08 C & C++ 복습

//#include <stdio.h>
//
//void main(){
//
// int x;
// printf("숫자를 입력해주세요");
// scanf("%d", &x);
//
// if (x>=10 && x<=60 && x%2 ==0) printf("%d", x);
//
//}
/*
#include <stdio.h>

int main(){
int i = 0;
for (int i = 0; i < 10; i++)
if (i%2 !=0) printf("%d", i);

return 0;
}*/


#include <stdio.h>

int main(){
double x;
int i = 0;

printf("높이를 입력해주세요.");
scanf("%lf", &x);
while(x>=0.00001)
x /= 2.0;
printf("%lf", x);

return 0;
}

/*
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <ctime>
using namespace std;

int main(){
const int size = 10;
double number[size];

srand(time(0));
for (int j = 0; j < size; j++) {
number[j] = rand()%10 + 1;
}
for (int i = 0; i < size; i++)
cout << number[i] << " ";

system("pause");
return 0;
}*/

//#include <stdio.h>
//
//void main(){
// int num = 0;
//
// while (num < 10) {
// printf("Hello \n");
//
// num++;
// }
//}

2.01.2017

2017.01.31. - C언어

사용자로부터 입력을 받아. 그 값을 x라고 하였을 때, 배열의 이름을 array_test, 크기를 20으로 작성하고. array_test의 각 원소의 값을 x+offset으로 초기화하는 함수 array_ test()를 작성하세요.

- 사용자의 입력을 받는다.[완료]
- int 배열 array_test의 크기를 20으로 초기화한다. [완료]
- array_test()함수 생성 후 로직 옮기기 [완료]
- array_test 값 세팅 [완료]
  - 모든 승객의 값을 1로 세팅 [완료]
  - 모든 승객의 값을 offset 으로 세팅 [완료]
  - 모든 승객의 값을 offset + input 으로 세팅 [완료]
- 출력 값 다듬기 [완료]
#include <stdio.h>

void array_test() {
int array_test[20];
int input;
int array_test_size = sizeof(array_test) / sizeof(int);

fseek(stdin, 0, SEEK_END);
printf("숫자 입력 해 주세요");
scanf("%d", &input);

printf("%d", input);
for (int i = 0; i < array_test_size; i++) {
array_test[i] = i + input;
}
for (int i = 0; i < array_test_size; i++) {
printf("%d\n", array_test[i]);
}
}
int main() {
array_test();
}



0~9 까지의 값으로 초기화 되어있는 배열 변수가 존재하고, 사용자로부터 입력을 받아. 입력받은 정수 값을 x 라고 하였을 경우. x 값 만큼 배열 값을 shift 하고 빈 자리는 0으로 만들어 주는 프로그램을 작성하세요, 예를 들어 3을 입력 받았을 경우 배열의 값은 { 0, 0, 0, 0, 1, 2, 3, 4, 5, 6 } 이 되게 됩니다.

- 0~9까지의 값으로 ㅊ기화 되어있는 배열 변수가 존재[완료]
- 사용자로부터 입력을 받기 [완료]
- 입력받은 정수 값 만큼 배열 값을 shift 하고 0으로 만들기

#include <stdio.h>

int main() {
int int_arr[] = { 0,1,2,3,4,5,6,7,8,9 };
int input;

for (int i = 0; i < 10; i++) {
int_arr[i + 1] = int_arr[i];
int_arr[i] = 0;
printf("%d", int_arr[i]);
}
}

1.27.2017

2017.01.26 - C언어

#include <stdio.h>

int main() {
int arr[10] = { 8, 6, 15, 87, 3, 4, 222, 1, 9, 0 };
int arr_size = sizeof(arr) / sizeof(int);
int temp = 0;

int j = 0;

while (true) {
j++;

for (int i = 0; i < arr_size - 1; i++) {
if (arr[i] > arr[i + 1]) {
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}

if (j > arr_size) {
break;
}
}

// 어떤 과정
for (int i = 0; i < 10; i++) {
printf("%d\n", arr[i]);
}

return 0;
}





9*9*9

#include <stdio.h>

int main() {
int dan = 9;
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
printf("%d*%d*%d=%d\n", dan, i, j, dan*i*j);
}
}
return 0;
}

1.25.2017

2017.01.24 -C수업

http://lala-edu.oa.gg/cc-기초/

#include <stdio.h>

int main() {
int a;

printf("10~n 까지의 값을 모두 더하는 프로그램\n");
printf("정수를 입력해 주세요");

fseek(stdin, 0, SEEK_END);
scanf("%d", &a);

int result = 0;

for (int i = 10; i <= a; i++) {
result = result + i;
}

if (a>=10) {
printf("%d", result);
}
else if (a<10) {
printf("오류가 발생하였습니다");
}

fseek(stdin, 0, SEEK_END);
fgetc(stdin);
return 0;
}