2016-09-19 2 views
-3

C++로 작성한 3 주째에 나는 아래에 표시된 실습 문제를 받았습니다.화씨 및 섭씨 변환 표

for 루프 내에서 화씨 0에서 212도까지 화씨 및 섭씨 온도 표를 인쇄하는 프로그램을 작성하십시오. 화씨 및 섭씨의 열 표제를 사용하고 필드 너비를 사용하여 두 열을 오른쪽으로 정렬합니다 (숫자를 오른쪽으로 정렬하여 열, 열 수 등은 줄을 정렬하지만 열 머리글 아래에는 숫자를 가운데에 맞 춥니 다). 플러스 또는 마이너스 기호와 함께 소수점 3 자리 섭씨는 섭씨지만 정수는없고 화씨는 플러스 또는 마이너스 기호가없고 기온 (섭씨 온도 이전이지만 화씨 온도보다 앞선 공간) 사이에 점 리더를 추가하십시오.

이것은 내가 지금까지 가지고있는 것입니다.

#include <iostream> 
#include <iomanip> 
using namespace std; 
void main() 
{ 
    int fah; 
    float cel; 
    cout << "Fahrenheit" << setw(17) << "Celsius" << endl; 
    cout.setf(ios::fixed); 
    for (fah = 0; fah <= 212; fah++) 

    { 
     cel = (fah - 32) * (5.0/9); 

     cout << right << setw(10) << noshowpos << fah 
      << setw(17) << setprecision(3) 
      << showpos << cel << setfill('.') << endl; 
    } 
} 

내가 여기에있는 문제는 화씨와 섭씨 전에 도트 리더를 원한다는 것입니다. 화씨 이전이 아니야. 누군가 그렇게하는 법을 보여줄 수 있습니까?

p.s. 우리는 당분간 무효 메인을 사용하고 있으며 나는 그것이 나쁜 습관임을 알고 있습니다.

+0

실제 출력은 얼마입니까 (전체 테이블이 필요하지 않음)이며 예상 출력은 무엇입니까? –

+0

도트 리더는 무엇을 의미합니까? 원하는 것을 보여주는 예가 도움이 될 것입니다. – NathanOliver

+2

_ "p.s 우리는 당분간 보이드 메인 (public main)을 사용하고 있으며, 나쁜 습관이라는 것을 알고 있습니다."_ _bad 연습은 아니지만 명백히 잘못되었습니다. –

답변

0

이 시도 :

#include <iostream> 
#include <iomanip> 
using namespace std; 
int main() { 
    int fah; 
    float cel; 
    cout << "Fahrenheit" << setw(17) << "Celsius" << endl; 
    cout.setf(ios::fixed); 
    for (fah = 0; fah <= 5; fah++) 

    { 
    cel = (fah - 32) * (5.0/9); 

    cout << right << setfill(' ') << setw(10) << noshowpos << fah 
     << setfill('.') << setw(17) << setprecision(3) 
     << showpos << cel << endl; 
    } 
} 

setfill 조작이 setw 앞에 와야한다. 지정한 너비를 채우기 위해 setfill의 인수로 주어진 것을 사용합니다.

관련 문제