Răspuns:
Partea asta trebuie sa apara in for, cu if nu cu while.
while(scif>=a && scif<=b)
{
S+=nr;
k++;
}
Partea aceasta pune in scif valoarea nr/10 + nr%10. Merge doar in cazul cu 1 sau 2 cifre.
u=nr%10;
z=nr/10;
scif=z+u;
Explicație:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n,a,b,i,nr,u,z,scif,k=0,S=0;
cin>>a>>b>>n;
for(i=1; i<=n; i++)
{
cin>>nr;
scif = 0;
z = nr;
while(z){
u=z%10;
z=z/10;
scif+=u;
}
if(scif >= a && scif <= b){
S += nr;
k++;
}
}
if(k != 0)
cout << fixed << setprecision(2) << static_cast<double>(S)/static_cast<double>(k);
else cout << "NaN";
return 0;
}