piratteegon
piratteegon

Reputation: 31

C programming Do while

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

Answers (4)

Zoneur
Zoneur

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

Aniket Inge
Aniket Inge

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

Tsuneo Yoshioka
Tsuneo Yoshioka

Reputation: 7874

Remove ";" after do() .

do (cislo/10)
{
switch (cislo%10);

Upvotes: 0

ouah
ouah

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

Related Questions