-
Layer7_20160323수업예제/Layer7_20160323 2016. 3. 24. 22:50반응형
<1> k번째 숫자가 무엇이었는지 출력한다.
123456789#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을 출력한다.
123456789101112#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> 배열 입력 받고 역순 출력
1234567891011121314151617#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 12345678910111213141516171819#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글자 이하.
1234567891011121314151617181920212223#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 1234567891011121314151617181920#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;elseprintf("%c", arr[i]);}}cs 입력 : abC Def gh
출력 : abCDefgh
<6> 왼쪽으로 숫자 로테이션
1234567891011121314151617181920212223242526#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 입력 : 51 2 3 4 5출력 :1 2 3 4 52 3 4 5 13 4 5 1 24 5 1 2 35 1 2 3 4<7> 입력된 문장에서 각각의 알파벳의 개수는?
12345678910111213141516171819202122#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
반응형'예제 > Layer7_20160323' 카테고리의 다른 글
(추가) 달팽이 배열 (2) 2017.03.28 Layer7_20160323수업_다차원 배열 과제 (0) 2016.03.27 Layer7_20160323수업_2의2000제곱(2의 2000승) (0) 2016.03.24