书本练习提示我创建一个模拟抛硬币的程序。我的朋友说他在原生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)
感谢您的回复。
答案 0 :(得分: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;
}
错误: 在主要内容中,您忘记了“返回0”语句。 在翻转函数中你写了'return NULL',它不应该存在。在vs。
中试用此代码答案 1 :(得分: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;
}
答案 2 :(得分: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;
}