본문 바로가기

C언어

동적 메모리 할당 http://blog.naver.com/wlsgkr91/220895953442 동적 메모리 할당변수를 선언하는 대신 프로그램의 요청으로 메모리를 할당할 수 있다. 이것을 "동적 메모리 할당" 이라고 한다. Malloc 함수를 호출하여 동적메모리 할당을 요청하면 요구하는 크기의 메모리를 할당하고 그 시작 주소를 반환한다. 10개의 정수를 저장하기 위한 메모리 공간이필요하다. int *p; p=(int *)malloc(40); if(p==NULL){ //동적 메모리 할당이 실패 //적잘한 조치를 취한다. } P[0]=12; P[1]=24; *(P+2)=36; int *-malloc이 반환하는 주소는 타입이 없는 주소 void * 이다.-정수들을 저장하기 위해서 이것을 int *로 변환한다. (반드시 필요한 .. 더보기
문자열 http://blog.naver.com/wlsgkr91/220897001854문자열 -문자열은 char타입의 배열의 각 칸마다 문자 하나씩 저장된다. 문자열 배열 char str[6]; 문자열의 마지막은 null이 저장되어있다. 문자열의 끝을 표시하는 역할을 한다. 즉 배열의 크기가 문자열의 길이보다 적어도 1만큼 길어야한다. 문자열을 생성하는 편리한 방법을 제공한다. 1.char str[] = "hello"; -hello와 null 값으로 저장된 char형 배열. 변경이 가능하다. 2.char *str = "hello"; -String literal 수정이 불가하다. string.h라이브러리 주요함수 strcpy -문자열 복사 strlen - 문자열의 길이 strcat - 문자열 합치기 strcmp-문.. 더보기
문자열을 입력받아 문자열의 길이를 출력해보는 코드 문자열을 입력받아 문자열의 길이를 출력해보는 코드를 해보려고한다. #include #include int main() { char buffer[40]; while(1){ printf("$ "); scanf("%s",buffer); printf("%s:%d\n",buffer,strlen(buffer)); } return 0; } 1. 길이 40인 char형 배열을 선언. 2. while문을 돌며 buffer에 문자열입력. 3.입력받은 문자열과,문자열의 길이 출력. *문제점 1) scanf는 단어 단위로 입력을 쓰다보면 공백문자를 기준으로 단어 하나하나를 입력받는다. 따라서 입력한 모든 문자열이 공백이 사이에껴있으면 입력한 모든 문자열을 통째로 인식을 하지않고 공백문자까지만 인식을 한다. 2)배열 길이 40.. 더보기
[C언어/과제/코드/Code::Blocks]6으로 나누어지면서 4로는 나누어 지지 않는 C언어 프로그램을 작성해 보겠습니다. 사용자가 1부터 100까지의 수 n을 입력하였을때, 6으로 나누어지면서 4로는 나누어지지 않는 1부터n까지의 수들의 총합을 계산하는C언어 프로그램을 작성해 보겠습니다. 조건1. 해당되는 수들의 총 개수 및 각각의 수들을 출력할 수 있어야 한다.조건2. 입력한 수가 1부터 100 사이의 수가 아닐 때, 다시 입력을 받도록 한다.---------------------------------------------------------------------------------------------------------------#include int main(void){ int i; //변수 선언 int l; //변수 선언 int sum=0; //초기값 선언 int num=0; //초기값 선언 while(1) .. 더보기
[C언어/과제/코드/Code::Blocks]사용자로부터 0~359 까지의 정수입력 받고 몇 사분면인지 출력하는 C언어 프로그램 작성하기 한 점이 있을 때, 그 점과 원점을 잇는 정의할 수 있다. 다음 그림에서처럼 이 직선과 X축 사이의 각 a로 부터 이점ㅇ 몇 사분면에 속하는지 알 수 있다. 사용자로부터 0부터359까지 정수를 입력 받고 몇 사분면인지 출력하는 C언어 프로그램을 작성해보겠습니다.----------------------------------------------------------------------------------------------------------------------조건1. 사용자로부터 입력 받은 정수가 0~359가 아니면 계속 입력 받도록 한다. 조건2. 0도,90도,180도,270도는 사분면이 아니라 양의 X축, 양의 Y축, 음의 X축, 음의 Y축에 속한다고 출력한다.-----------------.. 더보기
[C언어/과제/코드/Code::blocks]C언어 이차원 상에서 임의의 원과 한 점, 원과 점 사이의 관계 출력 C언어 프로그램 작성 이차원 상에서 임의의 원과 한 점이 주어졌을 때, 원과 점 사이의 관계를 출력하는 프로그램의 코드를 작성 해보겠습니다.요구조건1. 입력시 1개의 임의의 점과 1개의 임의의 원을 입력으로 한다. 점은 이차원 상의 점이므로 (x,y)으로 표현되며, 정수로 한정한다 원은 이차원 상에 있으므로 중심의 위치 (a,b)와 반지름의 길이 r로 표현한다. 숫자 입력은 정수로 한정한다. 2, 출력시 점은 (x,y)형태로 ,원은 (x-a)^2 + (y-b)^2=r^2의 형태로 출력한다. 단 a나 b가 0인경우 x^2혹은 y^2 형태로 나타낸다. 원과 점 사이의 관계를 원의 내부, 원의 외부, 원 위의 하나로 나타내고 이를 출력한다. if~else 조건문 사용하여 코드를 작성 해보았습니다. #include #include .. 더보기
[C언어/과제/코드/Code::Block]C언어 정수를 입력 받아 정수를 이루는 숫자 출력 프로그램 작성. 0에서 32,767까지의 정수를 입력 받아 , 그 정수를 이루는 숫자를 출력하는 C언어 프로그램을 작성 해보겠습니다. 조건1. 입력-0부터 32,767까지의 범위를 벗어난 수가 입력된 경우, "잘못된 입력입니다"라는 메세지를 출력하고 C언어 프로그램 종료.조건2. 출력-각 숫자는 3개의 빈 공간으로 구분되며 첫째 줄은 가장 왼쪽의 숫자로부터 시작해서 5개의 숫자를 모두출력, 두번째 줄은 두번 째 숫자로 부터 시작해서 4개의 숫자를 출력하는 식으로 총 다섯 줄을 출력. #include int main(){ int a,b,c,d,e;//변수 지정 int number; //변수 지정 scanf("%d",&number); //입력 a= number%10; //number값을 10으로 나눴을때 나머지 b= num.. 더보기
[C언어/과제/코드/Code::Block]C언어로 원의 둘레 길이 입력 반지름 출력 C언어로 원의 둘레 길이를 입력 받아 반지름을 출력하는 C언어 프로그램을 만들어 보겠습니다. 조건1. 입력값은 float type조건2. 파이 값은 3.14로 defined constant를 사용 프로그램은C언어 프로그램인 Code::Blocks를 사용하였습니다. #include #define pi 3.14int main(){ float a; //변수 지정 float Radius; //변수 지정 printf("Enter the perimeter of a circle"); //출력함수 scanf("%f", &a); //입력함수 Radius = a / pi; //라디안을 구하는 공식 지정 printf("Radius: %.2f",Radius); //라디안값 소수점 둘째자리까지 출력 return 0;} 다음에는.. 더보기