'분류 전체보기' 카테고리의 글 목록 (11 Page)
본문 바로가기
728x90

분류 전체보기354

C언어 - 포인터 활용, call by value, call by reference 간단하게 설명하면 call by value는 변수의 값을 부르는 것이고 call by reference는 변수의 참고(주소)를 부르는 것이다. 사실상 C언어에서는 call by reference 보다는 call by address라고 보는 게 맞다. 공식적으로 C언어에서 call by reference를 지원하지 않는다. call by address를 통해 call by reference와 같이 사용할 수 있다. Call by value 함수의 매개변수에 인수의 실제 값을 복사한다. 이경우 함수 안에서 매개변수끼리 값이 변하기 때문에 실제 인수 값에 영향이 가지 않는다. 즉 Call by value 함수 내에서만 값이 변경되고 실제 인수 값은 변함이 없게 된다. 실제 값을 변경할 필요가 없는 경우에 사용.. 2020. 10. 16.
CodeUp 1089[기초-종합] 수 나열하기1 -C/C++ #include int main(){ int a,s,d,f,z = 0; scanf("%d %d %d",&a,&s,&d); for(f=0;f 2020. 10. 15.
CodeUp 1088[기초-종합] 3의 배수는 통과? -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&s); for(b=1;b 2020. 10. 14.
CodeUp 1087[기초-종합] 여기까지! 이제 그만 -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&h); for(b=1;;b++){ s=s+b; if(s>=h) { break; } } printf("%d",s); return 0; } 간단한 문제다. 값을 입력받고 그 값에 따른 반복문과 문제의 조건을 적절히 사용하면 된다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 13.
CodeUp 1086[기초-종합] 그림 파일 저장용량 계산하기 -C/C++ #include int main(){ int h,b,s=0; scanf("%d",&h); for(b=1;;b++){ s=s+b; if(s>=h) { break; } } printf("%d",s); return 0; } 값을 받아 반복문과 조건문으로 문제에 나와있는 조건을 넣어주면 쉽게 해결되는 것 같다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 12.
CodeUp 1085[기초-종합] 소리 파일 저장용량 계산하기 -C/C++ #include int main(){ long h,b,c,s; scanf("%d %d %d %d", &h, &b, &c, &s); double i = (((h*b*c*s)/8)/1024); printf("%.1f MB",i/1024); return 0; } 문제에 나와있는 공식을 코드화 시켜서 푸는 문제이다. 사실 코딩을 할 때 인자에 범위를 넣어주는 게 가장 안전하다. 단순 알고리즘이기때문에 무시하고 작성하였지만 인자 값의 범위에 따라 선언하는 인자의 형태에도 주의해야 한다. codeup 관계자에게 허락을 구하고 올리는 글입니다다. 문제시 글은 내리도록 하겠습니다. codeup 기초100제 2020. 10. 9.
CodeUp 1084[기초-종합] 빛 섞어 색 만들기(설명) -C/C++ #include int main(){ int i,j,k =0; int r,g,b =2; int c=0; scanf("%d %d %d", &r, &g, &b); for(i=0; i 2020. 10. 8.
CodeUp 1083[기초-종합] 3 6 9 게임의 왕이 되자!(설명) -C/C++ #include int main(){ int a,s,d; scanf("%d",&a); for(s=1;s 2020. 10. 7.
CodeUp 1082[기초-종합] 16진수 구구단? -C/C++ #include int main(){ int a,s,d; scanf("%X",&a); for(s=1;s 2020. 10. 6.
CodeUp 1081[기초-종합] 주사위를 2개 던지면? -C/C++ #include int main(){ int a,s,z,x; scanf("%d %d",&z,&x); for(a=1;a 2020. 10. 5.
C언어 - 포인터 연산, 포인터와 배열의 관계 포인터 연산 예를 들어 포인터 변수 p에서 *p일 경우 주소가 가리키는 값을 표시하고 p일결우 주소 값을 가리킨다. 이점에 주의하여 연산을 해야 한다. *p += 1, *p++, (*p)++ 의 차이점을 알아보자! *p += 10 같은 경우는 쉽게 이해가 될 것이다. 큰 차이점을 보인 것은 (*p)++ 와 *p++이다. 연산자에서 우선순위가 있어서 나타나는 현상이다. 연산자의 우선순위를 따라 ++,--가 포인터 연산자보다 우선이다. 포인터 연산자는 우선순위 2위인 간접 참조*이다. 그래서 포인터보다 먼저 p의 값이 증가되어 주소 값이 증가된다. (int는 4 바이트 이므로 주소 값이 4가 증가된다.) ++,-- 연산자를 사용할 때 주의해야 한다. a = 0x7ffee993598c *a = 5 a++ = .. 2020. 8. 28.
C언어 - 포인터(Pointer) 변수의 메모리 주소, 값 메모리는 메모리의 값과 메모리의 주소와 같이 저장된다. 실행 결과를 보면 a의 값은 5로 나오고 &a는 a의 주소 값을 출력한다. 이때 주소는 고정된 값이 아니라 컴퓨터마다, 실행할 때마다 달라진다. *시스템에 따라 32비트 64비트에 따라 메모리의 범위도 달라진다. 포인터란 메모리의 주소값을 저장하기 위함이다. 메모리 값이 변수에 저장되듯 메모리의 주소는 포인터 변수에 저장된다. 포인터 변수 선언 선언 시 포인터 변수를 사용한다. 자료형* 변수명 - int* hi; 자료형 * 변수명 - int * hi; 자료형 *변수명 - int *hi; 세 가지 방식으로 선언 가능하다. 편한 방식으로 사용하면 된다. 포인터는 선언 시 반드시 먼저 초기화되어야 한다. 그렇지 않으면 의도하지 않.. 2020. 8. 21.
CodeUp 1080[기초-종합] 언제까지 더해야 할까? -C/C++ #include int main(){ int a,d,s = 0; scanf("%d",&a); for(s==1;d 2020. 8. 20.
CodeUp 1079[기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기 -C/C++ #include int main(){ char a; while(a!='q'){ scanf("%c ",&a); printf("%c\n",a); } return 0; } 문제 1073, 1074번 같이 값이 0 까지 혹은 1까지 만 출력하는 것과 같다. 단지 입력값이 q 일 때 프로그램이 종료될 뿐. 과정은 같다고 생각하고 풀면 될 것 같다. 2020. 8. 19.
CodeUp 1078[기초-종합] 짝수 합 구하기 -C/C++ #include int main(){ int a,d; d=0; scanf("%d",&a); for(int i=0;i 2020. 8. 18.
CodeUp 1077[기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기 -C/C++ #include int main() { int a,s = 0; scanf("%d",&a); while(a+1 !=s){ printf("%d\n",s); s++; } return 0; } 전 문제와 다른 점은 문자가 정수로 입력된점이다. 2020. 8. 17.
CodeUp 1076[기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기 -C/C++ #include int main() { char a,s = 'a'; scanf("%c",&a); while(a+1 !=s){ printf("%c ",s); s++; } return 0; } 입력 값이 문자로 바뀐것 그리고 입력한 값부터 0이나 1부터 까지가 아닌 a부터 시작하는 코드이다. 전 문제와 크게 다르진 않지만 문자열도 결과적으로 아스키 코드로 인식을 하기때문에 가능한 코드이다. 2020. 8. 16.
CodeUp 1075[기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2 -C/C++ #include int main() { int a; scanf("%d",&a); while(a!=0){ a--; printf("%d\n",a); } return 0; } 아까와 범위만 다를 뿐 같은 문제다.. 범위에 대한 개념을 알기 위한 문제인 것 같다. 2020. 8. 15.
C언어 메모리 구조 [스택(Stack), 힙(Heap), 데이터(Data)영역] 코드(CODE) 영역 프로그래머가 작성한 소스코드가 들어있는 부분이다. 실행할 프로그램의 코드가 저자오디는 영역으로 텍스트(code) 영역 이라고도 부른다 CPU는 코드 영역의 코드를 하나씩 수행한다. 데이터(DATA) 영역 데이터 영역에는 전역 변수와 정적변수가 선언된다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다. 힙(HEAP) 영역 프로그래머가 메모리를 직접 관리해야하는 영역이다. 동적 메모리 할달을 이용해 사용자에 의해 메모리의 크기가 동적으로 할당되고 해지는 필수로 해야된다. 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다. 스텍 영역은 반대로 할당된다. (동적할당-iyk2h.tistory.com/81) 스택(STACK) 영역 지역 변수와 매개변.. 2020. 8. 14.
CodeUp 1074[기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1 -C/C++ #include int main() { int a; scanf("%d",&a); while(a!=0){ printf("%d\n",a); a--; } return 0; } 입력받은 값의 -1 을 하면서 1까지 나열하는 코드이다. while 문이 가장 적합해보여 while 문을 활용했다. 2020. 8. 14.
CodeUp 1073[기초-반복실행구조] 0 입력될 때까지 무한 출력하기2 -C/C++ #include int main() { int a; scanf("%d",&a); while(a!=0){ printf("%d\n",a); scanf("%d",&a); } return 0; } 전 문제와 비슷하다. 다른 점은 0이 입력되면 0은 출력하지 않고 종료한다. 범위에 신경 써서 코드를 작성하면 될 거 같다. 2020. 8. 13.
CodeUp 1072[기초-반복실행구조] 정수 입력받아 계속 출력하기 -C/C++ #include int main() { int a,s; scanf("%d",&a); reload: scanf("%d",&s); printf("%d\n",s); if(a-- != 1) goto reload; return 0; } 입력할 개수를 먼저 입력 후 값을 넣어 그 값을 하나씩 표시하는 코드다. 알고리즘이라고 하기보단 언어의 사용을 익히는 그런 문제다. 2020. 8. 12.
CodeUp 1071[기초-반복실행구조] 0 입력될 때까지 무한 출력하기1 -C/C++ #include int main() { reload: int a; scanf("%d",&a); if(a!=0){ goto ONE; } else if (a==0) { goto TWO; } ONE : printf("%d\n",a); goto reload; TWO : return 0; } goto 문을 이용해 입력된 값을 줄 바꿈으로 한 숫자씩 표시하는 코드를 작성했다. 2020. 8. 11.
CodeUp 1070[기초-조건/선택실행구조] 월 입력받아 계절 출력하기 -C/C++ #include int main() { int a; scanf("%d",&a); switch(a) { case 3: case 4: case 5: printf("spring"); break; case 6: case 7: case 8: printf("summer"); break; case 9: case 10: case 11: printf("fall"); break; case 12: case 1: case 2: printf("winter"); break; } } 계속 비슷한 문제다. 이번엔 케이스 문을 사용하여 계절의 범위마다 계절의 이름을 출력하는 프로그램을 작성하였다. 2020. 8. 10.
CodeUp 1069[기초-조건/선택실행구조] 평가 입력받아 다르게 출력하기 -C/C++ #include int main() { char a; scanf("%s",&a); switch(a) { case 'A': printf("best!!!"); break; case 'B': printf("good!!"); break; case 'C': printf("run!"); break; case 'D': printf("slowly~"); break; default: printf("what?"); } } 문자를 입력받아 문자마다 출력하는 결과물을 다르게 한다. 전에 문제와 유사하지만 다른 점은 정수에서 문자로 바뀐 점이다. 2020. 8. 9.
728x90