2017-01-14 1 views
3

입력 된 숫자의 오른쪽에서 왼쪽으로 오름차순으로 숫자가 있는지 확인해야합니다.숫자에 오른쪽에서 왼쪽으로 오름차순으로 숫자가 있는지 확인하는 방법

int n, temp; 
cout << "Please enter number: "; 
cin >> n; 
bool ascending = true; 
temp = n%10; 

while (n>0) 
{ 
    n /= 10; 
    if (temp < n % 10) 
    { 
     ascending = false; 
    } 
} 

if (ascending) 
{ 
    cout << "Number is ascending"; 
} 
else { 
    cout << "Number is not ascending"; 
} 
+0

, 그것은 디버거를 사용하는 것이 가장 좋습니다. 디버거는 초보자를 위협 할 수 있으므로 빠른 대안은 변수의 값과 제어 흐름의 위치를 ​​업데이트하기 위해 몇 가지 'cout'을 사용하는 것입니다. –

답변

1

나는 최신 실행할 때마다 반복

int n, temp; 
cout << "Please enter number: "; 
cin >> n; 
bool ascending = true; 
temp = n%10; 

while (n/10 > 0) 
{ 
    n /= 10; 
    if (temp > n % 10) 
    { 
     ascending = false; 
     break; 
    } 
    temp = n % 10; 
} 

if (ascending) 
{ 
    cout << "Number is ascending"; 
} 
else { 
    cout << "Number is not ascending"; 
} 
+1

'ascending = false'를 설정 한 후에'break' 할 수도 있습니다. –

+3

@Thirupathi Thangavel 오, 맞아, 고마워,하지만 여전히 정답을 출력하지 못한다. 예를 들어 숫자 "5321"을 출력하지 않는다. 출력이 오름차순이 아니다. – Andrew

+0

@ 바락 마노 스 예, 고마워. –

1

temp의 값을 업데이트하지 않을 : 내 코드가 제대로 여기

를 작동하지 않는 것 같다

내 코드입니다 Thirupathi에서 작동합니다. 참고 OP는 오름차순으로 왼쪽에서 오른쪽으로입니다.

전 출력 실행이 같은 상황에서

./order 
Please enter number: 5321 
Number is ascending 

./order 
Please enter number: 2356 
Number is not ascending 
+0

해결 방법을 제안 할 수 있습니까? 그렇지 않으면 대답이 아닙니다. –

관련 문제