배열 / 버블 / 함수 / 포인터
2018. 7. 6. 23:07ㆍStudy/C_언어
배열
다수의 데이터를 저장하고 처리하는 경우에 ㅇ용하게 사용할 수 있는 것
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #include <stdio.h> #include <stdlib.h> #include <time.h> #define INDEX 10 int main(void){ int score[INDEX],i, max, min, max_index, min_index; float avg = 0, sum; srand(time(NULL)); for(i = 0; i < INDEX; i++){ score[i] = rand() % 101; printf("%2d 점수 %d\n", i+1 ,score[i]); sum += score[i]; } avg = (float)sum / INDEX; max = min = score[0]; max_index = min_index = 0; for(i = 0; i < INDEX; i++){ if(score[i] > max){ max = score[i]; max_index = i; } if(score[i] < min){ min = score[i]; min_index = i; } } printf("%d번째 학생이 %d로 최고점 입니다.\n",max_index + 1, max); printf("%d번째 학생이 %d로 최소점 입니다.\n",min_index + 1, min); printf("전체평균은 %f\n", avg); return 0; } | cs |
버블(나쁜)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | { int i, j; int t; for(i = 0; i < INDEX ; i++){ for(j = 0; j < INDEX ; j++){ if(score[i] > score[j]){ t = score[i]; score[i] = score[j]; score[j] = t; } } } for(i = 0; i < INDEX ; i++) printf("성적 : %d \n",score[i]); } | cs |
함수
함수를 사용자가 정의하고 사용 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <stdio.h> int add(int a, int b) { int r; r = a + b; return r; } int subtract(int a, int b) { return (a - b); } void Nocomput() { printf("계산할 수 없습니다."); } int main(void){ int first, second, result; char op; printf("수식을 입력하세요: \n(예, 3 + 5)"); scanf("%d %c %d",&first, &op, &second); switch(op){ case '+': result = add(first, second); break; case '-': result = subtract(first, second); break; case '*': result = first * second; break; case '/': result = first / second; break; case '%': result = first % second; break; default: Nocomput(); } printf("result = %d",result); return 0; } | cs |
포인터
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> #include <stdlib.h> #include <time.h> void swap(int a, int b) { int t; t = a; a = b; b = t; } void swap2(int k[2]) { int t; printf("k = %d \n",k); printf("t = %d \n",&t); t = k[0]; k[0] = k[1]; k[1] = t; } int main(void){ int a[2] = {10,20}; printf("swap 호출 전 : \n"); printf("a[0] = %d a[1] = %d \n",a[0],a[1]); printf("a = %d \n",a); swap2(a); printf("swap 호출 후 : \n"); printf("a[0] = %d a[1] = %d \n",a[0],a[1]); return 0; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ int arr[] = {2, 3 ,4 ,5 ,6 ,7}; int a; int j; int *k; a = 3; k = &a; printf("a = %d k = %d \n",&a ,k); *k = 10; printf("a = %d \n",a); j = 100; k = &j; printf("%d %d",j ,*k); j= 200; *k = 200; return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <stdio.h> #include <stdlib.h> #include <time.h> void swap3(int *i, int *j) { int t; t = *i; *i = *j; *j = t; } int main(void){ int a,b; a = 10; b = 20; printf("a = %d ,b = %d \n",a , b); printf("호출 \n"); swap3(&a, &b); printf("a = %d ,b = %d \n",a , b); return 0; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <stdio.h> #include <stdlib.h> #include <time.h> void swap3(int *i, int *j) { int t; t = *i; *i = *j; *j = t; } int main(void){ int a, b; int *p, *q; double k; double *d; p = &a; q = &b; d = &k; printf("size : %d\n",sizeof(p)); a = 10; b = 20; printf("a = %d ,b = %d \n",a , b); printf("호출 \n"); swap3(&a, &b); printf("a = %d ,b = %d \n",a , b); return 0; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ int arr[] = {4, 5 ,6 ,7}; int *p; //p = arr //4 : arr[0], *(p+0),p[0], *(arr+0) //5 : arr[1], *(p+1) p = &(arr[2]); printf("%d \n",*(p+1)); return 0; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM 20 void print(int *n, int *data, char *g); void sort(int *n, int *data, char *g); void evaluate(int *data, char *g); int main(void) { int score[NUM] = {0}; int hak[NUM] = {0}; char grade[NUM] = ""; int i; srand(time(NULL)); for(i = 0; i < NUM; i++){ score[i] = rand()%100; hak[i] = i + 1; } evaluate(score, grade); print(hak, score, grade); sort(hak, score, grade); print(hak, score, grade); return 0; } void print(int *n, int *data, char *g) { int i; printf("========================\n"); printf(" 1반 성적\n"); printf("========================\n"); printf(" 학번\t 성적 \t 평점 \n"); printf("========================\n"); for(i = 0; i < NUM; i++) printf("%02d \t %02d \t %c \n", n[i] , data[i], g[i]); printf("\n"); printf("========================\n"); } void sort(int *n, int *data, char *g) { int i, j, temp; for(i = 0; i < NUM; i++){ for(j = i; j < NUM; j++){ if(data[i] < data[j]){ temp = data[i]; data[i] = data[j]; data[j] = temp; temp = n[i]; n[i] = n[j]; n[j] = temp; temp = g[i]; g[i] = g[j]; g[j] = temp; } } } } void evaluate(int *data, char *g) { int i; for(i = 0; i < NUM; i++){ if(data[i] >= 90) g[i] = 'A'; else if(data[i] >= 80) g[i] = 'B'; else if(data[i] >= 70) g[i] = 'C'; else g[i] = 'F'; } } | cs |
'Study > C_언어' 카테고리의 다른 글
if else 문 (0) | 2018.07.06 |
---|---|
for / while 문 (0) | 2018.07.06 |
switch (0) | 2018.07.06 |
printf, scanf (0) | 2018.03.08 |
자료형 (0) | 2018.03.03 |