다운로드 

문) 아래와 같이 제시된 문자열을 역순으로 화면에 인쇄할 수 있도록 프로그램하십시오.

단, 문자열의 길이를 측정할 경우 string.h 소속의 strlen 함수를 사용하고 문자열의 인쇄는 반복문을 활용합니다.
아래 해당되는 코드의 일부분을 완성하십시오.

strPtr = "green academy c nightline";




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
 
 char *strPtr = NULL;
 strPtr = "green academy c nightline";
 int i;
 int sizeStr = strlen(strPtr);
 
 // 이 부분의 코드를 완성하십시오. 


 
 printf("\n");
 system("PAUSE");
}



-----------------------------------------------------------




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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
 
    char *strPtr = NULL;
    strPtr = "green academy c nightline";
    int i;
    int sizeStr = strlen(strPtr);//strlen 함수로 sizeStr 라는변수에 문자열의 길이를 저장 
 
    ///////////////////////////////////////////
    char strPtr2[] = "green academy c nightline";
 
    int sizeStr2 = sizeof(strPtr2) / sizeof(char);
 
    // 주의사항) strlen과 위의 경우 길이 편차로 인해
    // 반복문으로 인쇄할 경우 주의가 필요하다.
 
    printf("strlen 사용 길이 : %d\n", sizeStr); // 25
    printf("sizeof 사용 길이 : %d\n", sizeStr2); // 25+1 = 26
    ////////////////////////////////////
 
    for (i = sizeStr - 1; i >= 0; i--//sizeStr-1(index가0부터니) 부터 0까지 내림차순으로 strPtr 문자열을 출력    
    {
        printf("%c", strPtr[i]);
    }    
    printf("\n");
    system("PAUSE");
}
cs


'스터디 > C,C++' 카테고리의 다른 글

C++ 클래스 실습과제  (7) 2018.02.19
C++ 클래스 응용 소스  (6) 2018.02.19
C 문자열 자르기 문제  (7) 2018.02.12
구조체  (6) 2018.02.05
배열포인터활용 성적구하기  (7) 2018.01.31

문) 아래와 같이 제시된 문자열을 화면에 인쇄하되 공백문자를 만나면 개행(줄바꿈:line-feed) 될 수 있도록

    처리하는 프로그램을 완성합니다.

strPtr = "green academy c class";




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
 
 char *strPtr = NULL;
 strPtr = "green academy c class";
 int i;
 int sizeStr = strlen(strPtr);
 
 for (i=0; i<sizeStr; i++) {
 
// 이 부분을 완성하십시오.
// 공백문자(' ')를 검색하여 개행문자(\n)으로 치환하고
// 그렇지 않으면 인쇄하는 조건문을 완성합니다.
    

  } // for

 printf("\n");
 system("PAUSE");
}



-------------------------------------------------



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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
 
    char *strPtr = NULL;//포인트 선언
    strPtr = "green academy c class";
    int i;
    int sizeStr = strlen(strPtr);//문자에 담고
 
    for (i = 0; i<sizeStr; i++) {
        /* 방법-1
        if (strPtr[i] == ' ')
        printf("\n");
        else
        printf("%c", strPtr[i]);
        */
 
        // 방법-2
        printf("%c", strPtr[i] == ' ' ? '\n' : strPtr[i]);//삼항연산자로 바로 출력
 
    } // for
 
    printf("\n");
    system("PAUSE");
}
cs


'스터디 > C,C++' 카테고리의 다른 글

C++ 클래스 응용 소스  (6) 2018.02.19
C 문자열 거꾸로 출력하기  (8) 2018.02.12
구조체  (6) 2018.02.05
배열포인터활용 성적구하기  (7) 2018.01.31
중첩반복문 별찍기  (7) 2018.01.26

안녕하세요 엘체프 GG 입니다.

오늘은 드디어 어렵다는 포인터를 배웠는데 먼말인지....ㅋㅋ 일딴 반복숙달하고 이해할 예정.

배열포인터 성적 구하는 로직입니다.


-포인트배열의 활용 성적구하기

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
#include <stdio.h>
#include <stdlib.h>
#define LESSONS 3
int main(void)
{
    int students;                // 학생수
    int sum = 0;                // 합계
    int l, s;                // for루프를 위한 임시변수
    int score[][LESSONS] = {
        { 859095 },            // 1번째 학생의 점수
        { 708260 },            // 2번째 학생의 점수
        { 708260 },
        { 859095 },            // 1번째 학생의 점수
        { 708260 },            // 2번째 학생의 점수
        { 708260 },
        { 708260 },
        {788492} };            // 8번째 학생의 점수
    char *lesson[] = { "Korean""English""Math" };
 
    students = sizeof(score) / sizeof(score[0]);    // 학생 수 계산
    for (l = 0; l<LESSONS; l++)             // 과목에 대해 루프
    {
        sum = 0;
        for (s = 0; s<students; s++)         // 학생 수만큼 루프
        {
            sum += score[s][l];        // 과목별 총합 계산
        }
        printf("[%7s] Total: %d, ", lesson[l], sum);
        printf("Average: %0.2f\n", (double)sum / students);
    }
    system("PAUSE");
    return 0;
}
 
cs


-배열포인터의 활용 성적구하기


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
#define _CRT_SECURE_NO_WARNINGS  /* scanf사용시 */
#include <stdio.h>
#include <stdlib.h>
#define LESSONS 3
 
int main(void)
{
    int students, sum = 0, l, s;
    char *lesson[] = { "Korean""English""Math" };
    int(*score)[LESSONS] = NULL;
    printf("학생 수를 입력하세요: ");
    scanf("%d"&students); //입력받기
    score = (int(*)[LESSONS])malloc(sizeof(int[LESSONS])*students); //malloc 힙역역의 자원을 쓴다.
    for (s = 0; s<students; s++)             // 학생 수만큼 루프
    {
        printf("%d번째 학생의 점수: ", s + 1);
        for (l = 0; l<LESSONS; l++)            // 과목 수만큼 루프
        {
            scanf("%d"&score[s][l]);        // 점수 입력 받음
        }
    }
    for (l = 0; l<LESSONS; l++)                 // 과목 수만큼 루프
    {
        sum = 0;
        for (s = 0; s<students; s++)             // 학생 수만큼 루프
        {
            sum += score[s][l];            // 과목별 총합 계산
        }
        printf("[%7s] Total: %d, ", lesson[l], sum);
        printf("Average: %0.2f\n", (double)sum / students);
    }
    free(score);// 메모리 해제 ex)자바의 가비지컬럭터 자원반납
    system("PAUSE");
    return 0;
}
 
cs


-2차원 포인터의활용 성적구하기.




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
#define _CRT_SECURE_NO_WARNINGS  /* scanf사용시 */
#include <stdio.h>
#include <stdlib.h>
#define LESSONS 3
 
int main(void)
{
    //////////////////////////////////////////////
    //변수부
    int students, sum = 0, l, s;
    int *lessons = NULL;
    int **score = NULL;
    //////////////////////////////////////////////
    //입력부
    printf("학생수를 입력하세요: ");
    scanf("%d"&students);
    score = (int **)malloc(sizeof(int *)*students);    // 세로축에 해당하는 메모리 할당
    lessons = (int *)malloc(sizeof(int)*students);
    
    ///////////////////////////////////////
    //처리부//출력부
    for (s = 0; s<students; s++)                 // 학생 수만큼 루프
    {
        printf("%d번째 학생의 수강과목 수: ", s + 1);
        scanf("%d"&lessons[s]);                // 학생별 수강과목 수 입력
        score[s] = (int *)malloc(sizeof(int)*lessons[s]);    // 가로축에 해당하는 메모리 할당
        printf("%d번째 학생의 점수 (%d개): ", s + 1, lessons[s]);
        
        for (l = 0; l<lessons[s]; l++)            // 과목 수만큼 루프
            scanf("%d"&score[s][l]);        // 점수 입력
    }
 
    for (s = 0; s<students; s++)                 // 학생 수만큼 루프
    {
        sum = 0;
        for (l = 0; l<lessons[s]; l++)
            sum += score[s][l];            // 학생별 평균 계산
        printf("%d번째 학생: %0.2f\n", s + 1, (double)sum / lessons[s]);
    }
    ///////////////////////////////////////////
    //자원반납부
    for (s = 0; s<students; s++)                // 학생 수만큼 루프
        free(score[s]);                    // 가로축에 해당하는 메모리 반납
    free(score);                        // 세로축에 해당하는 메모리 반납
    free(lessons);
    system("PAUSE");
    return 0;
}
 
cs



감사합니다.



'스터디 > C,C++' 카테고리의 다른 글

C 문자열 자르기 문제  (7) 2018.02.12
구조체  (6) 2018.02.05
중첩반복문 별찍기  (7) 2018.01.26
C실행툴 DEV-C++ 설치  (5) 2018.01.22
ASCII 코드 도표  (6) 2018.01.18
별찍기 


1.직삼각형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i, j;
 
    for (i = 0; i < 5; i++){
        for (j = 0; j < i + 1; j++){
            printf("%c", '*');
        }//for -i
        printf("\n");
    }
    system("pause");
    return 0;
}
cs

2.역직삼각형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i, j;
 
    for (i = 5; i > 0; i--){
        for (j = i; j > 0; j--){
            printf("%c", '*');
        }//for -i
        printf("\n");
    }
    system("pause");
    return 0;
}
cs

3.정삼각형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i, j;
 
    for (i = 1; i <= 5; i++){
        for (j = 5 - i; j > 0; j--){
            printf("%c", ' ');
        }
            for (j = 0; j < 2 * i - 1;j++){
                printf("%c", '*');
                
            }
            printf("\n");
        }
        
    
    system("pause");
    return 0;
}
cs

4.역삼각형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i, j;
 
    for (i = 0; i < 5; i++){
        for (j = 0; j <i; j++){
            printf("%c", ' ');
        }
        for (j = 0; j <(5-i)* 2 - 1; j++){
            printf("%c", '*');
 
        }
        printf("\n");
    }
 
 
    system("pause");
    return 0;
}
cs

5. 다이아


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int i, j,a=0,da=1;
 
    for (i = 1; i <= 9; i++){
        a = a + da;
        if (a == 5)da=-1;
        for (j = 0; j <5-a; j++){
            printf("%c", ' ');
        }
        for (j = 0; j < a * 2 - 1; j++){
            printf("%c", '*');
 
        }
        printf("\n");
    }
 
 
    system("pause");
    return 0;
}
cs

입력받아 찍기!

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
#define _CRT_SECURE_NO_WARNINGS  /* scanf사용시 */
#include <stdio.h> /* printf사용시 */
#include <stdlib.h> /* systemf사용시 */
 
 
int main(void)
{
    int i, j;    /* i: 가로라인 계산, j: 별갯수 계산 */
    int line;    /* 입력받을 수를 저장할 변수 */
 
    printf("입력 : ");
    scanf("%d"&line);
 
    for (i = 0; i < line; i++/* 입력받은 수 만큼 가로라인 계산 */
    {
        for (j = 0; j <= i; j++/* 별의 갯수를 라인수에 맞춰 출력 */
        {
            printf("*");
        }
        printf("\n");
    }
 
 
 
    system("PAUSE");
    return 0;
}
cs

정마름모 찍기


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
#include <stdio.h>
#include <stdlib.h>
 
int main() {
 
    int i, j;
 
    for (i = 0; i < 5; i++) {
 
        for (j = 0; j<(- i) * - 2; j++)
            printf("%c"' ');
 
        for (j = 0; j<((i + 1* 4- 3; j++)
            printf("%c"'*');
 
        printf("\n");
    }
 
    for (i = 3; i >= 0--i) {
 
        for (j = (- i) * - 2; j>0; j--)
            printf("%c"' ');
 
        for (j = ((i + 1* 4- 3; j>0; j--)
            printf("%c"'*');
 
        printf("\n");
    }
 
    system("PAUSE");
    return 0;
}
cs


하.... 어렵다.... 엉청.... 언제쯤 이해해서 쓸쑤 있으려나....


'스터디 > C,C++' 카테고리의 다른 글

C 문자열 자르기 문제  (7) 2018.02.12
구조체  (6) 2018.02.05
배열포인터활용 성적구하기  (7) 2018.01.31
C실행툴 DEV-C++ 설치  (5) 2018.01.22
ASCII 코드 도표  (6) 2018.01.18

안녕하세요 엘체프 GG 입니다.

ASC 코드표 입니다.


10진수

8진수

16진수

ASCII

Name(Meaning) <Text Reference>

0
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

000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
100
101
102
103
104
105
106
107
110
111
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
177

00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F


^A
^B
^C
^D
^E
^F
^G
^H
^I
^J
^K
^L
^M
^N
^O
^P
^Q
^R
^S
^T
^U
^V
^W
^X
^Y
^Z
^[
^\
^]
^^
^_

!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

NUL (used for padding) <NULL>
SOH (start of header)
STX (start of text)
ETX (end of text)
EOT (end of transmission)
ENQ (enquiry)
ACK (acknowledge)
BEL (bell or alarm) <BELL>
BS (backspace) <BS>
HT (horizontal tab) <TAB>
LF (line feed) <LF> <NL>
VT (vertical tab)
FF (form feed new page) <FF> <NP>
CR (carriage return) <CR>
SO (shift out)
SI (shift in)
DLE (data link escape)
DC1 (device control #1, XON)
DC2 (device control #2)
DC3 (device control #3, XOFF)
DC4 (device control #4)
NAK (negative acknowledge)
SYN (synchronous idle)
ETB (end transmission block)
CAN (cancel)
EM (end of medium)
SUB (substitute)
ESC (escape)
FS (file separator)
GS (group separator)
RS (record separator)
US (unit separator)
space or blank <SP>
exclamation mark
quotation(double quotation)
number sign(hash mark)
dollar sign
percent sign
ampersand sign
apostrophe(single quotation)
opening parenthesis
closing parenthesis
asterisk
plus sign
comma
hyphen or minus sign
period(decimal point dot)
slash
numeral zero
numeral one
numeral two
numeral three
numeral four
numeral five
numeral six
numeral seven
numeral eight
numeral nine
colon
semicolon
less than sign
equal sign
greater than sign
question mark
at sign
uppercase(capital) A
uppercase(capital) B
uppercase(capital) C
uppercase(capital) D
uppercase(capital) E
uppercase(capital) F
uppercase(capital) G
uppercase(capital) H
uppercase(capital) I
uppercase(capital) J
uppercase(capital) K
uppercase(capital) L
uppercase(capital) M
uppercase(capital) N
uppercase(capital) O
uppercase(capital) P
uppercase(capital) Q
uppercase(capital) R
uppercase(capital) S
uppercase(capital) T
uppercase(capital) U
uppercase(capital) V
uppercase(capital) W
uppercase(capital) X
uppercase(capital) Y
uppercase(capital) Z
opening bracket
backward slash(backslash)
closing bracket
caret(uparrow)
underscore
grave accent(back quotation)
lowercase a
lowercase b
lowercase c
lowercase d
lowercase e
lowercase f
lowercase g
lowercase h
lowercase i
lowercase j
lowercase k
lowercase l
lowercase m
lowercase n
lowercase o
lowercase p
lowercase q
lowercase r
lowercase s
lowercase t
lowercase u
lowercase v
lowercase w
lowercase x
lowercase y
lowercase z
opening brace
vertical line
closing brace
tilde
DEL(delete, rub out) <DEL>

감사합니다.


'스터디 > C,C++' 카테고리의 다른 글

C 문자열 자르기 문제  (7) 2018.02.12
구조체  (6) 2018.02.05
배열포인터활용 성적구하기  (7) 2018.01.31
중첩반복문 별찍기  (7) 2018.01.26
C실행툴 DEV-C++ 설치  (5) 2018.01.22

+ Recent posts