2016-10-08 2 views
-6

99보다 작거나 같은 자연수가 있으면 로마 숫자로 인쇄하십시오.C - 로마 숫자를 인쇄하는 방법?

이 방법이 있습니까? 이 과제를 어떻게 해결합니까? 멍청한 질문이 여기에 있습니다.

+0

너무 복잡해서 선생님이이 많은 코드를 써서 작성하는 방법이 없었습니다. 제 첫 번째 CS 코딩 과제입니다. – Topliner

+0

"로마 숫자 인쇄 방법" 귀하의 질문의 제목에서. 오른쪽 상단의 StackOverflow 검색 막대에 붙여 넣습니다. Et Voilà :) –

+2

@Topliner 또한 매우 고전적인 첫 번째 과제입니다. 삶의 모든 것이 쉽지는 않습니다. * 대부분의 것들 *, 당신이 자랄 경우 자신의 생각과 연구를 할 것을 요구할 것입니다. –

답변

0

이 코드는 작동하지만, 설명이 필요합니다.

#include <stdio.h> 

void printRomanNumerals(int input); 

int main(int argc, const char * argv[]) { 
    printf("Input your number!\n"); 
    int i; 
    scanf("%d", &i); 
    printRomanNumerals(i); 
    return 0; 
} 

void printRomanNumerals(int input) { 

    switch (input/10) { 
     case 1: 
      printf("%s","X"); 
      break; 
     case 2: 
      printf("%s","XX"); 
      break; 
     case 3: 
      printf("%s","xxx"); 
      break; 
     case 4: 
      printf("%s","XL"); 
      break; 
     case 5: 
      printf("%s","L"); 
      break; 
     case 6: 
      printf("%s","LX"); 
      break; 
     case 7: 
      printf("%s","LXX"); 
      break; 
     case 8: 
      printf("%s","LXXX"); 
      break; 
     case 9: 
      printf("%s","XC"); 
      break; 
     default: 
      break; 
    } 

    switch (input % 10) { 
     case 1: 
      printf("%s","I"); 
      break; 
     case 2: 
      printf("%s","II"); 
      break; 
     case 3: 
      printf("%s","III"); 
      break; 
     case 4: 
      printf("%s","IV"); 
      break; 
     case 5: 
      printf("%s","V"); 
      break; 
     case 6: 
      printf("%s","VI"); 
      break; 
     case 7: 
      printf("%s","VII"); 
      break; 
     case 8: 
      printf("%s","VII"); 
      break; 
     case 9: 
      printf("%s","IX"); 
      break; 
     default: 
      break; 
    } 

} 
0

이러한 링크 된 페이지의 답변 중 일부는 너무 복잡했습니다. 멍청한 놈들은 왜 모든 재미있는 문제를 겪게되는 걸까요?

#include <stdio.h> 

const char *digits[] = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }; 
const char *prefixes[] = { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" }; 

#define LIMIT sizeof(digits)/sizeof(char *) * sizeof(prefixes)/sizeof(char *) 

int main() { 
    int i = 0; 

    do { 
     printf("Da mihi numeralis (0 si velis relinquere): "); 
     (void) scanf("%2i", &i); 
     (void) fpurge(stdin); 
     if (0 < i && i < LIMIT) { 
      printf("%s%s\n", prefixes[i/10], digits[i % 10]); 
     } 
    } while (i > 0); 

    return 0; 
} 
관련 문제