-6
99보다 작거나 같은 자연수가 있으면 로마 숫자로 인쇄하십시오.C - 로마 숫자를 인쇄하는 방법?
이 방법이 있습니까? 이 과제를 어떻게 해결합니까? 멍청한 질문이 여기에 있습니다.
99보다 작거나 같은 자연수가 있으면 로마 숫자로 인쇄하십시오.C - 로마 숫자를 인쇄하는 방법?
이 방법이 있습니까? 이 과제를 어떻게 해결합니까? 멍청한 질문이 여기에 있습니다.
이 코드는 작동하지만, 설명이 필요합니다.
#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;
}
}
이러한 링크 된 페이지의 답변 중 일부는 너무 복잡했습니다. 멍청한 놈들은 왜 모든 재미있는 문제를 겪게되는 걸까요?
#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;
}
너무 복잡해서 선생님이이 많은 코드를 써서 작성하는 방법이 없었습니다. 제 첫 번째 CS 코딩 과제입니다. – Topliner
"로마 숫자 인쇄 방법" 귀하의 질문의 제목에서. 오른쪽 상단의 StackOverflow 검색 막대에 붙여 넣습니다. Et Voilà :) –
@Topliner 또한 매우 고전적인 첫 번째 과제입니다. 삶의 모든 것이 쉽지는 않습니다. * 대부분의 것들 *, 당신이 자랄 경우 자신의 생각과 연구를 할 것을 요구할 것입니다. –