본문 바로가기

개발자/C

C언어 대시 수 세기

반응형

문제

요구분석

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);

}

실행결과




반응형