0

これを書いたばかりで、問題が見つかりません。私はコードブロックを扱っており、この問題を書いています

error: expected 'while' before '{' token
=== Build finished: 1 errors, 1 warnings)

しかし、それは正しくないので、そこにいる間は書くことができません。誰か助けてくれませんか?私の英語でごめんなさい。

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;
}

最後に、次のように出力する必要があります。

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
4

4 に答える 4

1
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);

これを試して?

于 2012-10-19T18:33:58.977 に答える
1

do .. whileステートメントの形式は次のとおりです。

do statement while (expression)

あなたの例では、2 つのステートメントがあります。

(cislo/10);

および別の複合ステートメント{ ... }. これは意味がありません。

于 2012-10-19T18:28:52.283 に答える
1

do (cislo/10);する必要があります

do 
{ 
  /* your code */ 
} while (cislo/10);

それぞれcase X;が である必要がありますcase X:

hexist が指摘するように、スイッチは次のように記述されます。

switch (condition) {
  case X:
    /*something*/
    break;
}
于 2012-10-19T18:29:01.677 に答える
0

削除する ";" do() の後。

do (cislo/10)
{
switch (cislo%10);
于 2012-10-19T18:30:17.200 に答える