1

コードを正常にコンパイルしましたが、次のように表示されます。

注: 「run」の後に任意のコマンド ライン引数を入力して、アプリケーションを実行することもできます。
引数なしでアプリケーションを起動しています...
ライブラリをチェックしています...
ファイルをコピーしています...
ファイルを処理中...
コンパイル中...
バイナリの圧縮に失敗しました!

アプリケーションが終了しました。

私のコードでは、ユーザーにスペースを入れて 3 つの数字を入力させ、それらを乗算するようにしたいので、ここに私のコードを示します。

#include <stdio.h>
#include <stdlib.h>

int mult( int x, int y, int z) {
    return x * y * z;

int main()
    {
    int x;
    int y;
    int z;

    printf("Input two integers to be multiplied: ");
    scanf("%d", &x);
    scanf("%d", &y);
    scanf("%d", &z);
    printf("The product of the three numbers is %d\n", mult( x, y, z) );
    getchar();
}

int mult (int x, int y, int z)
{
return x * y * z;
    }
}        

開発プラットフォームとしてcompilr.comを使用しています。

4

3 に答える 3

1

コードに構文エラーが含まれています。multは 2 回定義されており、中括弧に問題があります。また、C89 を使用している場合はmain、値を返す必要があります。

于 2012-09-30T13:57:51.083 に答える
0

実際、あなたのコードは単純にリンクしません。の最初の定義にmultは、最後に中括弧がありません。2 番目の (不要な) 定義には、それに続く追加のブレースがあるようです。そのため、単一の大きな mult メソッドがあり、メインがまったくないように思われるため、リンカー エラーが発生します。メインも (中かっこに挟まれていなくても) 何も返しません。

驚くべきことに、Compilr はこれに関してエラーを返さないようです。(または表示しない) ただし、リンクに失敗したため、バイナリはありません。そのため、それらを圧縮しようとすると、実際の圧縮は失敗し、表示されるエラー メッセージが表示されます。

コードを他の場所に提出する前に、適切なコンパイラ/IDE を選択して自分でコードをコンパイルすることを真剣にお勧めします。まず、ローカル システムで実際に動作することを確認してください。compilr.com が実際の構文/コンパイラ/リンカー エラー情報を返さない場合は、ほとんど役に立ちません。(私はこのシステムに詳しくないので、実際に提供されるかもしれないことに注意してください。もしそうなら、これがどのように機能するかを理解してください)。

于 2012-09-30T14:05:15.837 に答える
0

あなたのコードはやや奇妙でおそらく間違っていることに加えて、あなたのエラーはリンカの問題を示しているようです: http://ideone.com/iBOtP

于 2012-09-30T15:20:50.937 に答える