문제
요구분석
1)50자 이하의 문자열을 입력받는다.
2)입력받는 문자는 정수형이다.
3)문자열의 총 대시의 개수를 출력한다.
해결방법
-switch case문을 사용하여 입력된 각각의 숫자별로 해당하는 대시 값을 계속 더해주는 방식
-if문을 사용하여 입력된 각각의 숫자별로 해당하는 대시 값을 계속 더해주는 방식
배경지식
-각 숫자별 필요한 대시의 개수
0,6,9일 때 : 6개 필요
1일 때 : 2개 필요
2,3,5일 때 : 5개 필요
4일 때 : 4개 필요
7일 때 : 3개 필요
8일 때 : 7개 필요
알고리즘
1. 사용자로부터 문자열 입력받음
2. while문을 사용하여 문자열이 NULL값일때까지 반복함
3. switch case문을 사용하여 배열의 방이 0부터 1씩 더해져 NULL일 때 까지 각각의 입력된 숫자 조건에 해당하는 값을 sum에 계속 더해줌
4. 결과값 출력
소스코드
#include <stdio.h>
void main(){
char str[51];
int n,sum=0,i=0;
printf("문자열 입력 : ");
scanf("%s",str);
while(1){
if (str[i]=='\0')
break;
else{
switch(str[i]){
case '0':case'6':case'9':
sum=sum+6;
break;
case '1':
sum=sum+2;
break;
case '2':case'3':case'5':
sum=sum+5;
break;
case '4':
sum=sum+4;
break;
case '7':
sum=sum+3;
break;
case '8':
sum=sum+7;
break;
default:
break;
}
}i++;
}
printf("필요한 대시 개수 : %d\n",sum);
}
실행결과
'개발자 > C' 카테고리의 다른 글
C언어 진법변환 (0) | 2015.09.29 |
---|---|
C언어 숫자 5개 입력받아 세자리수 만들기 (0) | 2015.09.29 |
C언어 초침과 분침이 직각을 이룰때 시각 구하기 (0) | 2015.09.29 |
C언어 소수놀이, 소수구하기 (0) | 2015.09.29 |
C언어 나무심기 (1) | 2015.09.29 |