५✍
11.20 본문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | #include "stdafx.h" #include<windows.h> #include<string.h> #include<time.h> #pragma warning (disable:4996) void func79_2() { char *name[5]; int num = 0; while (1) { //int num = 0; //계속 초기화 됨으로 밖에 넣는다 printf("문자열을 입력하세요\n"); char ar[16]; //2의 배수형식을 주로 사용한다 printf("\n이름을 입력하세요\n종료하실려면 종료라고 입력하세요\n");//사용자 인터페이스 scanf("%s", ar); //&ar이나 &ar[0] //에러 코드: C4996_deprecation,, 없어진다는 뜻 printf("%s %d\n", ar, strlen(ar)); if (strcmp(ar, "종료") == 0) // (!strcmp (ar, "종료")) { printf("\n프로그램을 끝냄니다!\n"); break; } int size = strlen(ar); printf("%d", size); name[num] = new char[size+1];//size만 적으면 하나 모지라니까 +1해준다. //num++;위에 줄에 name[num] ++을 붙혀주면 된다. //name[num++] = new char[size+1]; //하지만 strcpy를 사용하기 위해 밑에 name[num] ++을 붙혀준다. strcpy(name[num++], ar); } printf("총%d번\n", num); for (int i = 0; i < num; i++) { printf("입력된 이름들은 다음과 같습니다.%s\n", name[i]); delete[] name[i];//해제하는거 메모리 누수막는다. } } void func82() { int **c; //이차원 포인트 //int *은 타입! *c만 보자 //int * *c;//이렇게 생각~ c = new int*[3]; //세로개수 확보됨 c[0] = new int[4]; c[1] = new int[4]; c[2] = new int[4]; //이 이후부터는 c[3][4]와 동격 문법이다. //세개에 각각 4줄씩 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { c[i][j] = i * 4 + j;//숫자가 순차적으로 들어감 printf("%d ", c[i][j]); } } for (int i = 0; i < 3; i++) { delete[] c[i]; } delete[] c; } void func83() { /* int n1, n2; scanf("%d %d",&n1, &n2); printf("%d %d\n", n1 , n2); */ for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%2d", rand() % 10); } printf("\n"); } printf("\n------------------------\n"); int ar[3][4]; for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { ar[i][j]= rand() % 10; } }//랜덤으로 대입 for (int i = 0; i < 3; i++) { for (int j = 0; j < 4; j++) { printf("%02d", ar[i][j]); } printf("\n"); }//랜덤으로 대입한 값 출력 for (int b = 0; b < 4; b++) { int sum = 0; for (int a = 0; a < 3; a++) { sum += ar[a][b]; } printf("%d ",sum); } } void func84() { int n1, n2; scanf("%d %d", &n1, &n2); printf("%d %d\n", n1, n2); //int ar[n2][n1]; int **ar; //int * *ar; //타입이 int *이다 ar = new int *[n2];//int *ar[3] for (int i = 0; i < n2; i++) { ar[i] = new int[n1]; for (int j = 0; j < n1; j++) { ar[i][j] = rand() % 10; printf("%02d ",ar[i][j]); } printf("\n"); } for (int i = 0; i < n2; i++) { delete[] ar[i]; } delete[] ar; } int main() { srand((signed)time(NULL)); func84(); } | cs |