作业帮 > 综合 > 作业

c语言随机生成100个3位正整数

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 06:38:32
c语言随机生成100个3位正整数
(1)求出其中素数的个数.(2)把求出的所有素数按照从大到小的顺序排序并输出.
#include "stdio.h"
#include "time.h"
#include "stdlib.h"
int isprime(int n)//判断n是否是素数,是返回1,不是返回0
{
 int i;
 for(i=2;i<=n/2;i++)
  if(n%i==0)
   return 0;
 return 1;
}
int main()
{
 int a[100]={0};
 int b[100]={0};
 int i,j,count=0,tmp;
 srand(time(NULL));
 for(i=0;i<100;i++)//3位整数  100~999
 {
  a[i]=rand()%900+100;       //rand()%900 899 加上100则是 100~999
  if(isprime(a[i])==1)     //如果是素数,则存到b数组中,同时用count变量计数
  {
   b[count++]=a[i];
  }
 }
 //素数数组排序从大到小:
 for(i=0;i<count-1;i++)
  for(j=i+1;j<count;j++)
   if(b[i]<b[j])
   {
    tmp=b[i];
    b[i]=b[j];
    b[j]=tmp;
   }
    printf("随机产生的100个3位数中素数共有%d个\n",count);
 printf("从大到小输出素数:\n");
 for(i=0;i<count;i++)
  printf("%d\t",b[i]);
 printf("\n");
}

再问: 大神 最后那个for循环是为了干什么的?
再答: 输出存在b数组中的素数啊,
再问: 哦哦 我把它上面的那个printf看成已经输出了。 感谢! 自己再研究一下流程图吧~ 不懂的地方还要请教啊~