0

本の演習で、コイン投げをシミュレートするプログラムを作成するように促されました。私の友人は、ネイティブ GNU コンパイラで私のコードを実行したと言っていますが、それは機能しましたが、Visual Studio 2010 で実行しようとすると、次のエラーが表示されます。

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

int result;

int flip();

int main(void)
{
    srand(time(NULL));

    int heads = 0;
    int tails = 0;
    unsigned counter;

    for(counter = 1; counter <= 100; counter++)
    {
        result = flip();

        if(result == 1)
        {
            printf("Heads\n");
            heads++;
        }

        else
        {
            printf("Tails\n");
            tails++;
        }
    }

        printf("Heads: %d\tTails: %d\n", heads, tails);
}

int flip()
{
    result = 1 + rand() % 2;

    if (result == 1)
        return 1;

    if (result == 2)
        return 0;

    return NULL;
}

syntax error: ')' (line 10)

'counter': undeclared identifier (15, 23)

'heads': undeclared identifier (19, 23)

't': undeclared identifier (10, 10)

syntax error: missing ')' before 'type' (line 10)

syntax error: missing ';' before '{' (line 11)

syntax error: missing ';' before 'type' (9, 10, 10, 10)

返信ありがとうございます。

4

3 に答える 3

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

int result;

int flip();

int main(void){
    int heads = 0;
    int tails = 0;
    unsigned counter;

    srand(time(NULL));//Executable statement after the declaration

    for(counter = 1; counter <= 100; counter++){
        result = flip();

        if(result == 1){
            printf("Heads\n");
            heads++;
        } else {
            printf("Tails\n");
            tails++;
        }
    }

    printf("Heads: %d\tTails: %d\n", heads, tails);
    return 0;
}

int flip() {
    result = 1 + rand() % 2;

    return result == 1;
}
于 2013-06-27T09:05:20.120 に答える
0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){
int heads = 0,tails = 0;
unsigned int counter = 1;
int result = 0;

srand(time(NULL));

for(counter = 1; counter <= 100; counter++){
    result = rand()%2;

    if(result == 1){         
        heads++;
    }
    else{
        tails++;
    }
}
printf("Heads: %d\tTails: %d\n", heads, tails);     
return 0;
}
于 2013-06-27T06:45:43.930 に答える
0

これは、Eclipseでうまく動作する修正されたコードです:

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

int result;

int flip();

int main(void)
{
    srand(time(NULL));

    int heads = 0;
    int tails = 0;
    unsigned counter;

    for(counter = 1; counter <= 100; counter++)
    {
        result = flip();

        if(result == 1)
        {
            printf("Heads\n");
            heads++;
        }

        else
        {
            printf("Tails\n");
            tails++;
        }
    }

        printf("Heads: %d\tTails: %d\n", heads, tails);

        return 0;
}

int flip()
{
    result = 1 + rand() % 2;

    if (result == 1)
        return 1;

    if (result == 2)
        return 0;
}

間違い: main で、'return 0' ステートメントを忘れました。フリップ関数では、そこにあってはならない「return NULL」を書きました。このコードを vs.

于 2013-06-27T05:56:38.130 に答える