- #1
C++ hates me
- 2
- 0
Hello Physics Forums,
Before i get started asking questions i wanted to clarify that i don't need/want a answer, i have an answer after about an hour of searching.
The thing is i understand what needs to be done but i do not understand how to do it in C++.
I am just hoping to learn from you guys.
The problem is: I must write a program in C++ that converts a 4 digit arabic number into roman numerals. I must have a loop that allows the user to repeat the calc. however many times they wish ( I already know how.)
The answer that i found was this:
#include <stdafx.h>
#include <iostream>
using namespace std;
int main()
{
1 char l[] = "MDCLXVI";
2 int r,d[]={9,5,4,1};
3 cout << "Enter a positive integer to convert to Roman numerals:\n";
4 cin >> r;
5 do
6 {
7 int p=100;
8 for(; r>=1000; r-=1000)
9 cout << l[0];
10 for (int i=1; i<4; i++,p/=10)
11 {
12 for(; r >= p*d[0]; r -= p*d[0])
13 cout << l[2*i] << l[i*2-2];
14 for(; r >= p*d[1]; r -= p*d[1])
15 cout << l[2*i-1];
16 for(; r >= p*d[2]; r -= p*d[2])
17 cout << l[2*i]<<l[i*2-1];
18 for(; r >= p; r -= p)
19 cout << l[2*i];
}
cout << "\n\nEnter the next number, or -1 to quit:\n";
cin >> r;
} while (r>=0);
cout << "\n\nHave a nice day.";
return 0;
}
**I give all credit to the user gnome for the above program, i merely copied it :(**
The problem is i don't want to turn it in and get a good grade because it isn't my work.
I really want to be able to do it on my own, i just do not understand C++ well enough to write this program.
Can anyone explain to me in ordinary terms what the following lines of code are doing:
1, 2, 7, 8, 10, 12-19 :)
Thank you all for your guidance and patience.
Sean
[edit] I see now that i posted in introductory physics, if an admin could move it to computer sci, engineering boards i would appreciate it!
Before i get started asking questions i wanted to clarify that i don't need/want a answer, i have an answer after about an hour of searching.
The thing is i understand what needs to be done but i do not understand how to do it in C++.
I am just hoping to learn from you guys.
Homework Statement
The problem is: I must write a program in C++ that converts a 4 digit arabic number into roman numerals. I must have a loop that allows the user to repeat the calc. however many times they wish ( I already know how.)
The answer that i found was this:
#include <stdafx.h>
#include <iostream>
using namespace std;
int main()
{
1 char l[] = "MDCLXVI";
2 int r,d[]={9,5,4,1};
3 cout << "Enter a positive integer to convert to Roman numerals:\n";
4 cin >> r;
5 do
6 {
7 int p=100;
8 for(; r>=1000; r-=1000)
9 cout << l[0];
10 for (int i=1; i<4; i++,p/=10)
11 {
12 for(; r >= p*d[0]; r -= p*d[0])
13 cout << l[2*i] << l[i*2-2];
14 for(; r >= p*d[1]; r -= p*d[1])
15 cout << l[2*i-1];
16 for(; r >= p*d[2]; r -= p*d[2])
17 cout << l[2*i]<<l[i*2-1];
18 for(; r >= p; r -= p)
19 cout << l[2*i];
}
cout << "\n\nEnter the next number, or -1 to quit:\n";
cin >> r;
} while (r>=0);
cout << "\n\nHave a nice day.";
return 0;
}
**I give all credit to the user gnome for the above program, i merely copied it :(**
The problem is i don't want to turn it in and get a good grade because it isn't my work.
I really want to be able to do it on my own, i just do not understand C++ well enough to write this program.
Can anyone explain to me in ordinary terms what the following lines of code are doing:
1, 2, 7, 8, 10, 12-19 :)
Thank you all for your guidance and patience.
Sean
[edit] I see now that i posted in introductory physics, if an admin could move it to computer sci, engineering boards i would appreciate it!
Last edited: