-2

41 行目にエラーがあります: 'int' の前に式が必要です 45 行目: '&' のオペランドの比較を括弧で囲んでください

また、43 ~ 45 のコードが意味を成しているかどうかを確認したかったのです。

初めてこのフォーラムに投稿します。C は初めてなので、この投稿のアマチュアな性質をご容赦ください。

#include<stdio.h>
#include<math.h>
int main(void)

{
 // LOCAL DECLARATIONS

 int bricks; //the number of bricks available
 int spheres; //the number of spheres available
 int prisms; //the number of prisms available
 int final_string(int bricks, int spheres, int prisms); //the longest possible string with the given shapes in an alternating fashion

 // EXECUTABLE STATEMENTS

 printf("\nEnter the number of bricks: ");
 scanf("%d", &bricks);
 printf("Enter the number of spheres: ");
 scanf("%d", &spheres);
 printf("Enter the number of prisms: ");
 scanf("%d", &prisms);
 printf("\nLongest possible string of alternating shapes usuing only two different shapes: %d", int final_string(int bricks, int spheres, int prisms));

 int final_string(int bricks,int spheres,int prisms);
{
 return bricks * (bricks > spheres & bricks > prisms) + spheres * (spheres > bricks & spheres > prisms) + prisms * (prisms > bricks & prisms > spheres);
}

return(0);
4

3 に答える 3

4
  1. int行からすべての s を削除します。

    printf("\nLongest possible string of alternating shapes usuing only two different shapes: %d", int final_string(int bricks, int spheres, int prisms));
    
  2. の定義で、関数シグネチャの後のセミコロンを削除しますfinal_string

  3. final_string外に移動main
  4. ビットごとの代わりに論理&&演算子を使用する&
  5. Cの本を買って読む
  6. 将来的には、 http://codereview.stackexchange.comでこのような「質問」をしてください。
于 2013-06-24T16:47:44.870 に答える
0

この線、

printf("\nLongest possible string of alternating shapes usuing only two different shapes: %d",  int final_string(int bricks, int spheres, int prisms));

間違っている。この行でint final_string(int bricks, int spheres, int prisms)は、関数の宣言であり、それを呼び出していません。に置き換えますfinal_string(bricks, spheres, prisms)

そして、その関数を外部で定義しますmain。ではC、関数をネストできません。したがって、修正されたコードは次のようになります。

#include<stdio.h>
#include<math.h>
int main(void)
{
    // LOCAL DECLARATIONS

   int bricks; //the number of bricks available
   int spheres; //the number of spheres available
   int prisms; //the number of prisms available
   int final_string(int bricks, int spheres, int prisms); //the longest possible string with the given shapes in an alternating fashion

   // EXECUTABLE STATEMENTS

   printf("\nEnter the number of bricks: ");
   scanf("%d", &bricks);
   printf("Enter the number of spheres: ");
   scanf("%d", &spheres);
   printf("Enter the number of prisms: ");
   scanf("%d", &prisms);
   printf("\nLongest possible string of alternating shapes usuing only two different   shapes: %d", final_string( bricks,  spheres, prisms));
   return(0);
}

int final_string(int bricks,int spheres,int prisms)
{
    return bricks * (bricks > spheres & bricks > prisms) + spheres * (spheres > bricks & spheres > prisms) + prisms * (prisms > bricks & prisms > spheres);
}
于 2013-06-24T16:48:15.340 に答える
0

どうぞ :

http://cfiddle.net/TyZAKw

上記のように、「int」「;」を入れすぎます 実装時の関数シグネチャの後に && の代わりに &

于 2013-06-24T17:17:05.587 に答える