Код проходит не все тесты(какие тесты не знаю); C++
Задача не сложная, условие - вывести наименьшую и наибольшую цифры данного числа через пробел.
#include <iostream>
using namespace std;
int main()
{
int n, max;
max = 0;
long long min = 100000000000000000;
cin >> n;
n = abs(n);
while(n != 0){
int a = n % 10;
int b = n / 10;
n = b;
if (a > max){
max = a;
}else if(min > a) {
min = a;
}
}
cout << min << ' ' << max;
return 0;
}
Но я столкнулся с проблемой - часть тестов заваливается. В чем может быть ошибка или недочет?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Зачем просто, если можно сложно, да? :)
Просто рассматривайте его как строку...
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cin >> s;
char m = s[0], M = s[0];
for(char c: s)
{
if (c < m) m = c; else
if (c > M) M = c;
}
cout << m << " " << M << endl;
}
Или еще короче от IR42:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string s;
cin >> s;
auto [min, max] = minmax_element(s.begin(), s.end());
cout << *min << " " << *max << endl;
}