+ 5
what's wrong with my solution?
l wrote this solution for Password Validation (Code Coach) and just 1 test failed (test 4)! what's wrong with this code?! #include <iostream> using namespace std; int main() { char c; int cs,cn,cc; while(cin>>c){ cc++; switch (c){ case '!': case '@': case '#': case '
#x27;: case '%': case '&': case '*': cs++; break ; case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '0': cn++; break; } } if(cc>6 && cn>1 && cs>1) cout<<"Strong"; else cout<<"Weak"; return 0; }4 Réponses
+ 3
Correctly initializing the counter variables to 0 solved the issue for me. The compiler doesn't do it for you automatically.
+ 3
Nope. An uninitialized variable has whatever value has been stored previously in the memory cells it refers to. A simple way for default initialization is to use curly braces (uniform initialization), which works for all default-constructable data types (so basically everything), e.g.
int a {};
char c {};
and so on.
+ 2
Shadow Thank you so much 😀❤️
The problem solved.
just one question, where's the problem with declaring a variable without initializing it and then using it?! isn't it 0 by default?
+ 2
{ SorousH } In C++, local variables (especially of built-in type that aren't static) are not initialized to "zeros" for you, however, by default global and static variables are. So, where you place the variable makes the difference, even so it's advisable to always initialize your variables.