Я работаю над программой для своего курса на C++. Руководящие принципы заключаются в создании конвертера, который превращает целые числа в римские цифры, причем спецификации состоят в том, что я должен использовать хотя бы один оператор while, do while и один переключатель.C++: путаница при преобразовании целых чисел в римские цифры
Мой код работает по большей части, но я не могу привлекать особые случаи, связанные с 4 и 9 (например, (4, 14, 24 34 и т. Д.) 40, (140, 240 и т. Д.) 400, (1400 , 2400, 3400 и т. Д.) И (9, 19, 29, 39 и т. Д.) 90, (190, 290 и т. Д.) 900, 9000)) работать для меня. Это код, у меня есть на данный момент:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout << "Please enter an interger." << endl;
int num = 0;
cin >> num;
string rep = "";
switch(num)
{
case 40:
rep += "XL";
num -= 40;
break;
case 90:
rep += "XC";
num -= 90;
break;
}
if (num >= 1000){
rep += string(num/1000,'M');
num %= 1000;
}
if (num >= 500){
rep += string(num/500,'D');
num %= 500;
}
if (num >= 100){
rep += string(num/100,'C');
num %= 100;
}
if (num >= 50){
rep += string(num/50,'L');
num %= 50;
}
if (num >= 10){
rep += string(num/10,'X');
num %= 10;
}
if (num >= 5){
rep += string(num/5,'V');
num %= 5;
}
if (num >= 1){
rep += string(num,'I');
num %= 1;
}
cout << num << endl;
cout << rep << endl;
return 0;
}
Таковы некоторые довольно тупые спецификации. (То, что указал ваш учитель) – nhgrif
@nhgrif: ну, явная цель кода - преобразовать целое число в римские цифры, но эта цель совершенно бесполезна, хотя она делает что-то явно конструктивное. Реальная цель упражнения состоит в том, чтобы изучить эти три структуры управления, что чрезвычайно полезно, хотя это может быть не имеет отношения к якобы имеющейся цели кода. В сущности, реальные задачи не обязательно являются лучшим способом изучения синтаксиса :-) –
Вот почему я считаю, что спецификации тупые. Синтаксис обучения должен выполняться в лекции класса, в викторинах или в рамках небольших заданий домашней работы: «Напишите цикл for». например. Фактические проекты, подобные этому, не должны иметь требований вне того, что программа должна выполнять в целом, и студент должен быть оценен по его способности реализовать лучшие структуры управления. – nhgrif