大家帮我看一下到底哪里出错了
要求产生1000~5000之间的100个随机数,找出其中的素数。用冒泡法对找出的数进行排序。请将产生的随机数,找出的素数,和排好序后的素数分别输出,小弟我只能输出前面两个要求的数组,最后一个排序却显示abnormal program termination.不知道是怎么回事。大家帮我看一下# include <stdio.h>
# include <stdlib.h>
# include <math.h>
# include <time.h>
int main()
{int a,b,c[100];
printf("random number\n");
srand((unsigned)time(0));
for(a=0;a<100;a++)
{b=rand()%4001+100;
printf("%d ",b);
c[a]=b;
}
printf("\n random prime number\n");
sui1(c);
return 0;
}
int sui1(int c[50])
{int a,b,d,e,f=0,g[50];
for(a=0;a<100;a++)
{
b=(int)sqrt(c[a]);
for(d=2;d<=b;d++)
{if(c[a]%d==0)
break;
if(d>=b)
{printf("%d ",c[a]);
g[f]=c[a];
f=f+1;}}
}
printf("\n sequentail prime number\n");
sui2(g);
return 0;
}
int sui2(int g[50])
{int b,c,d,e;
for(b=0;b<49;b++)
{for(d=0;d<=49-b;d++)
{if(g[d]>g[d+1])
{c=g[d];
g[d]=g[d+1];
g[d+1]=c;}
}}
for(e=0;e<50;e++)
{if(g[e]==!0)
printf("%d ",g[e]);
}
return 0;
}
本人菜鸟,初学C语言。这个程序为什么编译有错误
望大神指点一下
[ 本帖最后由 x6988312 于 2012-5-9 18:22 编辑 ]