应该是很初级的但我不懂的C语言问题:无法显示数组C[s]

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:07:52
这个逐个显示c[s]的程序经过这样的“折腾”以后,为什么什么也不显示呢?问题出在哪里呢???急求!!(VC++6.0)

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

void main()
{
int s,ss,c[10],a,b,m,h;

for (s=0;s<=9;s++) c[s]=0;

srand( (unsigned)time( NULL ) );

b=rand()%10;

rep: m=0;
for (ss=0;ss<=9;ss++)
{
a=rand()%10;
if (a==b) c[ss]=1;
}

for (ss=0;ss<=9;ss++)
{
m=m+c[ss];
if (m<7) goto rep;

}

for (s=0;s<=9;s++)
{
cout<<c[s]<<endl;
}

}
改成了,int main()...可还什么也没显示,只有光标在闪个不停。(float main,double main也试了不行)

二楼大虾好:我这个程序意思注意是:...if (a==b) c[ss]=1...这个ss每次也是在(0-9)随机的,这就是说随着一次次goto rep时,c[]中的元素成为1的也越来越多,当达到有7个是1时(其它的为0么),就由m来决定跳出循环体了,就是m=m+c[ss].

因为这个程序在rep goto rep 之间不停的循环,当然光标闪个不停了.for (ss=0;ss<=9;ss++)
{
m=m+c[ss];
if (m<7) goto rep;

}
每次这个for循环循环第一周的时候 m的值是0,ss的值也是0,c[ss]最大顶多是个1,m+c[ss]必然小于7,然后就跳转到rep,开始了下个必然的轮回,万劫不复,永不超升

把 void main 改成 int main就OK了