Răspuns :
#include <iostream>
using namespace std;
int m[12], cif[12];
int descreste(int a, int b)
{
int ok=1;
for (int i=a; i<b && ok; ++i)
if (cif[i]<=cif[i+1]) ok=0;
return ok;
}
int munte(int num)
{
int nc=0;
while (num)
{
++nc; cif[nc]=num%10; num/=10;
}
int k=1;
while (cif[k]<cif[k+1] && k<nc) ++k;
if (k==1 || k==nc) return 0;
else if (descreste(k, nc)) return 1;
else return 0;
}
int main()
{
int n, i, a;
cin >> n;
for (i=1; i<=n; ++i)
{
cin >> a;
if (munte(a)) m[i]=1;
}
for (i=1; i<=n; ++i)
{
cout << m[i] << "\n";
}
return 0;
}
Bună! Ai corectarea în fișierul atașat. Erau greșeli de neatenție (de exemplu:lipsea d=d/10 în al doilea while) și de logică (de ex. programul nu ar fi considerat un șir constant - ex. n=22 - strict crescător/descrescator; prin lipsa egalului din comparația c>cf sau c<cf).