본문 바로가기

분류 전체보기

097 - 메모리를 블록 단위로 할당하기 (calloc) ================================================= #include #include #include int main(void) { char* pmem; printf("sizeof(int)의 길이는 %d 입니다.\n",sizeof(int)); pmem = calloc(100,sizeof(int)); if(pmem == NULL){ puts("메모리를 할당할 수 없습니다."); }else{ puts("정수형 변수 100개를 저장할 버퍼가 할당되었습니다."); free(pmem); } return 0; } ================================================= calloc함수는 malloc 함수와 다르게 calloc함수에 의해 할당 된 메.. 더보기
096 - 메모리 할당하기(malloc) ================================================= #include #include #include #include #define MEMORY "MEMORY" int main(void) { char* pmem; pmem = malloc(100); if(pmem == NULL) { puts("메모리를 할당 할 수 없습니다."); } else { strcpy(pmem,MEMORY); puts(pmem); free(pmem); } return 0; } ================================================= malloc()는 메모리에서 원하는 만큼의 메모리를 할당 받을 수 있다. malloc 함수의 리턴값은 메모리 할당이 성공했을 경우 그 .. 더보기
004 - 풀이 ================================================= #include int max(int* n); int min(int* n); int main(void) { int n[3]; printf("3개의 정수를 입력하시오 : "); scanf("%d %d %d",n,n+1,n+2); printf("%d, %d, %d 중 최대값은 : %d\n",*n,*(n+1),*(n+2),max(n)); printf("%d, %d, %d 중 최소값은 : %d\n",*n,*(n+1),*(n+2),min(n)); return 0; } int max(int* n) { int max; if(*n >= *(n+1)) max = *n; else max = *(n+1); if(max < *(n+2)).. 더보기
004 함수관련 문제 1] 세 개의 정수를 입력받아서 그 중 가장 큰 수를 반환하는 함수와 가장 작은 수를 반환하는 함수를 만들어 보자. 그리고 이 함수들을 이용하는 적절한 main 함수도 구현해 보자. ------------------------------------------------------------------------------------------------------------------------------- 문제 2] 섭씨 온도를 입력하면 화씨 온도로 변환하는 Fahrenheit 라는 이름의 함수와 그 반대로 화씨 온도를 섭씨 온도로 변환하는 Celsius 함수를 정의하고 이에 적절한 main 함수도 구현해 보자. 섭씨와 화씨 온도 간의 변환 공식은 다음과 같다. F=1.8 X ˚C+32 실행 예:.. 더보기
055 - 문자열 입력받기(gets) #include int count(char *str); main(void) { char string[100]; char *ret; puts("문자를 입력하세요 : "); ret = fgets(string,100,stdin); // (받을인자,버퍼용량,입력방식) ※stdin->표준키보드입력 if(ret != NULL) { printf("문자 'a'의 갯수는 %d개입니다.\n",count(string)); } } int count(char *str) { int cnt = 0; while(*str !=(int)NULL) { if(*str++ == 'a')cnt++; } return cnt; } 더보기
060 - 문자열을 비교하는 함수 만들기 책과 다르게 코딩 해봄.. 아래의 코드는 입력 받은 문자열과 비교 문자열이 모두 NULL 문자를 가질때까지 비교하므로 책의 소스보다 처리 속도면에서 떨어짐 참고 : scanf()는 공백문자를 입력 하지 못하므로 한단어만 비교 가능!!! ================================================= #include #include #define SKY "sky" int My_strcmp(const char*, const char*); int main(void) { char string[100]; int ret; printf("영단어를 입력한 후 Enter키를 치세요\n"); printf("sky를 입력하면 프로그램이 종료됩니다.\n"); do{ scanf("%s",string);.. 더보기
059 - 문자열을 대,소문자로 구분하여 비교하기(strcmp) ================================================= #include #include #define SKY "sky" int main(void) { char string[100]; int ret; printf("영단어를 입력한 후 Enter키를 치세요\n"); printf("sky를 입력하면 프로그램이 종료됩니다.\n"); do{ scanf("%s",string); ret = strcmp(string,SKY); if(ret == 0){ printf("%s == %s, ret = %d\n", string,SKY,ret); break; }else if(ret < 0){ printf("%s < %s, ret = %d\n", string,SKY,ret); }else{ prin.. 더보기
심심풀이 - 08.05.29 풀이 ================================================================= #include int main(void) { int a[] = {1,3,6,4,2,8}; int high,low; int i; high=a[0]; for(i=1;ihigh){ high=a[i]; } } low=a[0]; for(i=1;i 더보기
058 - 문자열을 복사하는 함수 만들기 ================================================= #include char* my_strcpy(char*,const char*); int main(void) { char str[100]; my_strcpy(str,"kangdeokhun"); puts(str); return 0; } char* my_strcpy(char* dest, const char* src) { char* pdest=dest; // dest의 주소를 저장 if(dest == (int)NULL || src == (int)NULL){ if(*dest != (int)NULL){ *dest = (int)NULL; } return NULL; } do{ *dest++ = *src; }while(*src++ .. 더보기
심심풀이 - 08.05.29 배열 a 에 1,3,6,4,2,8 이라고 들어 있을 경우 가장 높은수와 가장 낮은 수를 출력해보시오. --------------------------------------- 댓글 환영 더보기