Reputation: 31
I just wrote this and i cant find problem. I work with codeblocks and it writing this problem
error: expected 'while' before '{' token
=== Build finished: 1 errors, 1 warnings)
But I cant wrote while there , because its not correct. Can someone help me please? Sorry for my eng.
printf("Put numbers for some reason\n");
int cislo;
int s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;
while(scanf("%d",&cislo)==1){
if (cislo<0)
printf ("Cislo %d, je zaporne, takove neberu", cislo);
}
s0=s1=s2=s3=s4=s5=s6=s7=s8=s9=0;
do (cislo/10);
{
switch (cislo%10);
case 0; ++s0; break;
case 1; ++s1; break;
case 2; ++s2; break;
case 3; ++s3; break;
case 4; ++s4; break;
case 5; ++s5; break;
case 6; ++s6; break;
case 7; ++s7; break;
case 8; ++s8; break;
case 9; ++s9; break;
}
while (cislo>0);
printf("0 %d x \n 1 %d x \n 2 %d x \n 3 %d x \n 4 %d x \n 5 %d x \n 6 %d x \n 7 %d x \n 8 %d x \n 9 %d x \n",s0,s1,s2,s3,s4,s5,s6,s7,s8,s9);
return 0;
}
In the final it must print something like this:
100
Number: 100 include this numbers :
0 ... 2x
1 ... 1x
2 ... 0x
3 ... 0x
4 ... 0x
5 ... 0x
6 ... 0x
7 ... 0x
8 ... 0x
9 ... 0x
Upvotes: 0
Views: 271
Reputation: 1099
do (cislo/10);
should be
do
{
/* your code */
} while (cislo/10);
Each case X;
should be case X:
.
As pointed by hexist, a switch is written like this:
switch (condition) {
case X:
/*something*/
break;
}
Upvotes: 1
Reputation: 25725
do
{
cislo /= 10;
switch (cislo%10);
case 0; ++s0; break;
case 1; ++s1; break;
case 2; ++s2; break;
case 3; ++s3; break;
case 4; ++s4; break;
case 5; ++s5; break;
case 6; ++s6; break;
case 7; ++s7; break;
case 8; ++s8; break;
case 9; ++s9; break;
}
while (cislo>0);
Try this?
Upvotes: 1
Reputation: 7874
Remove ";" after do() .
do (cislo/10)
{
switch (cislo%10);
Upvotes: 0
Reputation: 145899
A do .. while
statement has this form:
do statement while (expression)
In your example you have two statements:
(cislo/10);
and another compound statement { ... }
. This does not make any sense.
Upvotes: 1