-
[C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 13주차학교 수업/1-1, 1-2 코딩 기초 (파이썬, C) 2020. 11. 25. 21:34반응형
연습문제 19번
#include <stdio.h> #define MAX 50 struct phone{ char name[15]; char num[20]; }; int main() { struct phone book[MAX] = {{"나태희","010-5228-7889"},{"유현빈","010-5211-1472"},{"나원빈","010-1235-8765"},{"문건영","010-8282-8282"},{"소지법","010-5165-3483"}}; int i,z,size=5,j,cur,ans; char name[15],num[20]; while(1){ fflush(stdin); printf("1. 보기 2. 등록 3. 삭제 4. 끝내기\n\n"); printf("\t 메뉴 선택 [ ]\b\b"); scanf_s("%d",&z); if(z==1){ printf(" <<전화번호목록>>\n"); for(i=0; i<size; i++){ printf("%s %s\n",book[i].name,book[i].num); } } else if(z==2) { printf("등록할 이름? "); scanf_s("%s",book[size].name,14); printf("전화번호? "); scanf_s("%s",book[size].num,20); printf("%s 정보 등록 완료!\n\n",book[size].name); size++; } else if(z==3) { cur = -1; printf(" 삭제할 이름? "); scanf_s("%s",name,14); for(i=0; i<size; i++) { ans = 0; for(j=0; j<3; j++) { if(book[i].name[j] == name[j]) ans++; } if(ans==3) { cur = i; break; } } for(i=cur; i<size-1; i++) { book[i] = book[i+1]; } printf("\n%s 정보 삭제 완료!",name); size--; } else if(z==4) break; else printf("숫자를 잘못 입력하였습니다.\n"); printf("\n\n"); } return 0; }
구조체로 포인터를 사용하여 동적메모리를 할당시키기
#include <stdio.h> #include <stdlib.h> typedef struct member{ char name[15]; int age; char address[50]; }MEMBER; int main(){ MEMBER *ptr = (MEMBER*)malloc(sizeof(MEMBER)); int x; printf("이름: "); scanf_s("%s",ptr->name,14); printf("나이: "); scanf_s("%d",&x); (*ptr).age = x; printf("주소: "); scanf_s("%s",ptr->address,49); printf("\n\n%s\n",ptr->name); printf("%d\n",ptr->age); printf("%s\n",ptr->address); return 0; }
구조체의 멤버가 포인터일 때, 역참조를하는 프로그램 만들기
#include <stdio.h> #include <stdlib.h> struct A { int* member1; char member2; }; int main() { int x = 3; char y = 'a'; struct A B; struct A* C = malloc(sizeof(struct A)); B.member1 = &x; C->member1 = &x; printf("%d\n", *B.member1); printf("%d\n", *C->member1); B.member2 = y; C->member2 = y; printf("%c\n", B.member2); printf("%c\n", C->member2); return 0; }
동적할당으로 행과 열의 값을 입력받아서 2차원 배열 만들기
#include <stdio.h> #include <stdlib.h> int main() { int row, col,i,j,x; int **arr; scanf_s("%d",&row); scanf_s("%d",&col); arr = (int**)malloc(sizeof(int*)*row); for(i = 0; i<row; i++) arr[i] = (int*)malloc(sizeof(int)*col); for(i=0; i<row; i++) for(j=0; j<col; j++) arr[i][j] = i+j; for(i=0; i<row; i++) { for(j=0; j<col; j++) printf("%d ",arr[i][j]); printf("\n"); } }
반응형'학교 수업 > 1-1, 1-2 코딩 기초 (파이썬, C)' 카테고리의 다른 글
[C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 15주차 (0) 2020.12.07 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 14주차 (0) 2020.11.30 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 12주차 (0) 2020.11.17 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 11주차 (0) 2020.11.10 [C 프로그래밍: 새내기를 위한 첫 C 언어 책] 실습 10주차 (0) 2020.11.03