연재 완료/C Lang 예제코드 모음

C언어 함수 실습문제 풀이 CH7 (7)

라이피 (Lypi) 2018. 5. 19. 22:31
반응형

7. 2진수를  main()함수의 매개변수를 받아들여, 10진수, 16진수, 8진수로 바꾸어 출력하는 프로그램을 작성하라.

#include <stdio.h>
#include <math.h> // pow() 사용
#include <stdlib.h> // atoi() 사용
//atoi() : 문자열을 int 데이터로 변환하는 함수.


int main(int argc, char *argv[])
{
	int decimal = 0;
	int k = 0;

	if (argc != 2) {
		printf("2진수 매개변수 하나를 입력하세요 \n");
	}

	for (int i = 0; argv[1][i] != '\0'; i++) {
		if (argv[1][i] < '0' || argv[1][i] > '1') {
			printf("2진수 매개변수 하나를 입력하세요 \n");
		}
		k++;
	}

	for (int i = 0; i < k; i++) {
		decimal += (argv[1][i] == '1' ? 1 : 0) * (int)pow(2, k - i - 1);
	}

	printf(" 2진수 %s는\n",argv[1]);
	printf("10진수 = %d \n", decimal);
	printf("16진수 = %x \n", decimal);
	printf(" 8진수 = %o \n", decimal);
	printf("입니다. \n");


}
//잘못된 부분 수정...


반응형