본문 바로가기

C 언어

(48)
C언어 연습문제46 [문제] 구조체를 사용하여 점1은 [1, 2], 점2는 [100, 200]으로 초기화 하라. 그리고 포인터를 사용하여 점1은 2씩 증가시키고 점2는 4씩 증가시키는 프로그램을 작성하라. 조건1) 포인터를 사용하여 접근하는 방법은 2가지를 사용할 것(ptr[0].xpos 형식은 제외) 조건2) 구조체 배열을 사용할 것 조건3) 구조체 포인터를 사용할 것 조건4) 출력하는 함수를 따로 만들 것 [실행결과] [1, 2] [100, 200] [3, 4] [104, 204] [코드] #include struct point { int xpos; int ypos; }; void print(struct point* po); int main(void) { struct point pos[2] = { {1,2}, {100,..
C언어 연습문제45 [문제] 구조체 배열을 이용하여 점의 좌표를 3번 입력 받아 출력하는 프로그램을 작성하라. [실행결과] 점의 좌표 입력: 2 4 점의 좌표 입력: 3 5 점의 좌표 입력: 4 6 [2, 4] [3, 5] [4, 6] [코드] #include struct point { int xpos; int ypos; }; int main(void) { int i; struct point pos[3]; for (i = 0; i < 3; i++) // 3개의 점의 좌표 입력 { printf("점의 좌표 입력: "); scanf_s("%d %d", &pos[i].xpos, &pos[i].ypos); } for(i=0; i
C언어 연습문제44 [문제] 구조체를 이용하여 이름은 안성준, 번호는 010-1122-1234, 나이는 22로 초기화하자. 그리고 사용자로부터 이름, 번호, 나이를 입력 받은 뒤 초기화 된 정보와 입력 받은 정보를 모두 출력하는 프로그램을 작성하라. [실행결과] 이름 입력: 김수정 번호 입력: 010-1234-1234 나이 입력: 22 이름: 안성준 번호: 010-1122-1234 나이: 22 이름: 김수정 번호: 010-1234-1234 나이: 22 [코드] #include struct person { char name[20]; char phone[30]; int age; }; int main(void) { struct person per1 = { "안성준", "010-1122-1234", 22 }; struct pers..
C언어 연습문제43 [문제] 구조체를 사용하여 두 점의 자표를 입력 받아 거리를 계산하는 프로그램을 작성하라. [실행결과] Point1 pos: 1 3 Point2 pos: 4 5 두 점 사이의 거리는 3.60555 입니다. [코드] #include #include struct point { int xpos; int ypos; }; int main(void) { struct point pos1, pos2; double distance; fputs("Point1 pos: ", stdout); scanf_s("%d %d", &pos1.xpos, &pos1.ypos); fputs("Point2 pos: ", stdout); scanf_s("%d %d", &pos2.xpos, &pos2.ypos); distance = sqrt((..
C언어 연습문제42 [문제] 프로그램 사용자로부터 이름과 나이를 다음의 형식에 맞춰서 하나의 문자열로 받는다. "홍길동 29" "김영희 33" 이름은 세 글자가 아닐 수도 있고 영문으로 입력될 수도 있다. 단, 이름과 나이 사이에만 공백이 삽입되어야 한다. 이러한 형식으로 두 사람의 정보를 입력 받아서 이름과 나이가 각각 같은지 다른지를 판단하여 출력하는 프로그램을 작성해보자. 조건1) 나이는 숫자로 변환되어야 한다. 조건2) 구조체 사용하지 말 것 조건3) fgets함수를 이용하여 입력 받을 것 조건4) 변수는 다음과 같이 두 개만 사용할 것 str1[20], str2[20] [실행결과] 첫 번째 사람 정보 입력: 홍길동 22 두 번째 사람 정보 입력: 홍길동 33 이름이 동일합니다. 나이가 같지 않습니다. [코드] #i..
C언어 연습문제41 [문제] 다음과 같이 총 3개의 배열을 선언한다. char str1[20]; char str2[20]; char str3[40]; 그리고는 str1과 str2를 통해서 프로그램 사용자로부터 문자열을 입력 받되, fgets 함수호출을 통해서 입력 받는다. 이어서 str1에 저장된 문자열을 str3에 복사하고, str2에 저장된 문자열을 str3에 저장된 문자열의 뒤에 덧붙이자. 그리고 마지막으로 str3에 저장된 문자열을 출력하자. 예를 들어서 str1과 str2에 저장된 문자열이 각각 다음과 같다면, str1 "simple" str2 "string" str3에는 문자열 "simplestring"이 저장되어야 한다. [실행결과] 문자열 입력1: simple 문자열 입력2: string 조합의 결과: sim..
C언어 연습문제40 [문제] 적당한 길이의 문자열을 입력 받아서 그 안에 존재하는 숫자의 총 합을 계산해서 출력하는 프로그램을 작성해 보자. 예를 들어서 프로그램 사용자로부터 입력 받은 문자열이 "A15$43"이라 하면, 이 문자열 중 아라비아 숫자는 1, 5, 4, 3 이니, 1+5+4+3의 연산결과가 출력되어야 한다. 조건1) fputs, fgets, strlen 함수를 사용할 것. 조건2) 문자를 숫자로 변환하는 함수를 만들어서 사용할 것 [실행결과] 문자열 입력: ab12*4^5 숫자의 총 합: 12 [코드] #include #include int ConvToInt(char c); int main(void) { char str[30]; int len, i; int sum = 0; fputs("문자열 입력: ", st..
C언어 연습문제39 [문제] 문자열을 첫 번째는 정수, 두 번째는 실수로 입력 받아서 그 합을 출력하는 프로그램을 작성하자. [실행결과] 문자열 입력 1: 12 문자열 입력 2: 1.2 합계: 13.20 [코드] #include #include int main(void) { char str1[30] = { 0 }; int num1; double num2; printf("문자열 입력 1: "); scanf_s("%s", str1, 30); num1 = atoi(str1); printf("문자열 입력 2: "); scanf_s("%s", str1, 30); num2 = atof(str1); printf("합계: %.2lf", num1 + num2); return 0; } 윤성우의 열혈 C 프로그래밍