C语言 为什么这个程序是 unexpected end of file found?

帮忙找一下错误吧 最后想输出500个数据,但是却提示我unexpected end of file found,
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 500
main()
{int s=500000,t=400000,lose,win,i,j;
float v,w,l,m;
float a[N];
m=s/N;

for(i=1;i<=N;i++)
a[i]=m;

for(i=1;i<=t;i++)
{srand((unsigned)time(NULL));
win=rand()%500;
lose=rand()%500;
v=rand()%1;
w=a[win];l=a[lose];
while(l>=v*m)
{a[win]=m*v+w;
a[lose]=l-m*v;}

for(i=1;i<=N;i++)
printf("%f",a[i]);
}
确实少了个 },加上之后可以运行了,关键是我想输出500个数据,不知道为什么出不来,难道main函数只能执行返回一个值的程序,而无法执行输出命令吗?本人新手,请大家多多指点

看你的错误提示 你应该是用VS在调试 你缺少#include "StdAfx.h"的头文件 加上后就好了
v要定义为int型,j定义后没用到,结尾缺少一个}符号,main前面最好加上void,输出最好放到for外面,不然就要重复输出400000次,for循环中应该改成for(i=0;i<N;i++),不然a[N]中N就越界了。
我不考虑你代码的正确性 我从语法等方面将程序改成
#include "StdAfx.h"
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
#define N 500
void main()
{
int t=400000,lose,win,i,j,v;
float s=500000,w,l,m;
float a[N];
m=s/N;

for(i=0;i<N;i++)
a[i]=m;

for(i=1;i<=t;i++)
{
srand((unsigned)time(NULL));
win=rand()%500;
lose=rand()%500;
v=rand()%1;
w=a[win];l=a[lose];
while(l>=v*m)
{a[win]=m*v+w;
a[lose]=l-m*v;}
}
for(i=0;i<N;i++)
printf("%f",a[i]);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-05
最后少了一个 ‘}’
第2个回答  2011-01-05
一般情况是少了'{'或者'}',你好好找找看都是一对吗!你的代码好像少了个'}'
相似回答