예제/Layer7_20160323

Layer7_20160323수업

Mosu(정종인) 2016. 3. 24. 22:50
반응형

<1> k번째 숫자가 무엇이었는지 출력한다.

1
2
3
4
5
6
7
8
9
#include <stdio.h>
 
int main(){
    int k, arr[10]={10987654321};
    scanf("%d", &k);
 
    printf("%d", arr[k-1]);
    return 0;
}
cs

입력 : 3

출력 : 8


<2> k가 몇 번째에 있는지 출력한다. 단, 없으면 -1을 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main() {
    int k, arr[10= { 10987654321 };
    scanf("%d", &k);
    if(k<1||k>10){
        printf("-1");
        return 0;
    }
    printf("%d", arr[k - 1]);
    return 0;
}
cs

입력 : 7

출력 : 4


<3> 피보나치 수열을 출력한다.

#include <stdio.h>
int main() {
int arr[21], i;
arr[0] = 0;
arr[1] = 1;
for (i = 2; i <= 20; ++i){
arr[i] = arr[i - 2] + arr[i - 1];
}
for (i = 1; i <= 20; ++i){
printf("%d ", arr[i]);
}
}

출력 : 1 1 2 3 5 8 13 ... 6765


<4> 배열 입력 받고 역순 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
//첫 번째 방법 : printf를 거꾸로
 
 
int main(){
    int arr[10], i;
 
    for(i=0; i<5++i){
        scanf("%d", &arr[i]);
    }
 
    for(i=4; i>=0--i){
        printf("%d ", arr[i]);
    }
}
 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
//두 번째 방법 : 역정렬
 
 
int main(){
    int arr[10], i;
 
    for(i=0; i<5++i){
        scanf("%d", &arr[i]);
    }
    for(i=4; i>=0--i){
        arr[5+i]=arr[(4-i)];
    }
    for (i = 5; i<10++i) {
        printf("%d ", arr[i]);
    }
}
 
cs

입력 : 1 3 5 9 4

출력 : 4 9 5 3 1


<5> 입력 받은 문자열의 공백을 제거한 후 출력. 단, 문자열의 길이는 100글자 이하.

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>
 
//첫 번째 방법
 
 
int main(){
    int i, j;
    char arr[100];
 
    gets(arr);
    
    for (i = 0; i < 100++i){
        if(arr[i]==' '){
 
            for (j = i; j < 100++j){
                arr[j] = arr[j + 1];
            }
            i--;
        }
    }
    printf("%s", arr);
    return 0;
}
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
 
//두 번째 방법
 
 
int main(){
    char arr[100];
    int i;
 
    gets(arr);
 
    for (i = 0; i < 100++i){
        if (arr[i] == '\0')
            return 0;
        else if (arr[i] == ' ')
            continue;
        else
            printf("%c", arr[i]);
    }
}
cs


입력 : abC Def gh

출력 : abCDefgh


<6> 왼쪽으로 숫자 로테이션

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
#include <stdio.h>
 
int main(){
    int arr[10], i, input, virt, j, k;
 
    scanf("%d", &input);
    for (i = 1; i <= input; ++i){
        arr[i-1= i;
    }
    for (k = 0; k < input; ++k) {
        for (i = 0; i < input; ++i) {
 
            for (i = 0; i < input; ++i) {
                printf("%d ", arr[i]);
            }
            virt = arr[0];
            for (j = 0; j < input - 1++j) {
 
                arr[j] = arr[j + 1];
 
            }
            arr[input - 1= virt;
            printf("\n");
        }
    }
}
cs

입력 : 5
       1 2 3 4 5
출력 : 
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4


<7> 입력된 문장에서 각각의 알파벳의 개수는?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
 
int main(){
    char sentence[100], k;
    int i, j, count[26]={0,};
    gets(sentence);
 
    for(i=0; i<strlen(sentence); ++i){
        for(k='a'; k<='z'++k){
            if(sentence[i]==k){
                j=k-97;
                count[j]++;
            }
        }
    }
    for(i=0; i<26++i){
        printf("%c:%d\n", i+97, count[i]);
    }
    return 0;
}
 
cs


입력 : oh! my god! (100글자 이내로)

출력 : 

a:0

b:0

c:0

d:1

e:0

f:0

g:1

h:1

i:0

j:0

k:0

l:0

m:1

n:0

o:2

p:0

q:0

r:0

s:0

t:0

u:0

v:0

w:0

x:0

y:1

z:0





반응형