예제/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]={10, 9, 8, 7, 6, 5, 4, 3, 2, 1}; 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] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 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
반응형