永发信息网

C语言代码:定义一个数组int【20】,放置100以内的随机数,编程删除其中的素数,输出删除后的数

答案:2  悬赏:20  手机版
解决时间 2021-11-14 01:51
  • 提问者网友:骑士
  • 2021-11-13 07:09
C语言代码:定义一个数组int【20】,放置100以内的随机数,编程删除其中的素数,输出删除后的数
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-11-13 08:20
1、定义数组是没有问题的,随机数生成也是没有问题。
2、然后用循环遍历数组for(i=0;i<20;i++)如果是素数,就设置为101;
3、然后再遍历数组,用一个if()语句,if(a[i]<100) printf("%d",a[i]);即可。而大于100的就是素数就不用输出了。
如果要代码的话可以追问啊,思路已经给出了。追问给个代码吧,我写完参照一下追答随机数的生成我就不做了。输出我已经验证过正确的
#include
#include

int isSushu(int num);

int main()
{
int a[20];
int i;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
{
if(0==isSushu(a[i]))
a[i]=101;
}
printf("不是素数的有:");
for(i=0;i<20;i++)
if(a[i]<100)
printf("%d ",a[i]);
return 0;
}

int isSushu(int num)
{
int k,m;
k=sqrt(num); //判别i是否为素数,只需使2~根号i之间的每一个整数去除
for(m=2;m<=k;m++)
{
if(num%m==0)
break;
}
if(m>k)
{
// printf("%d是素数 ",num);
return 0;
}
else
{
// printf("%d不是素数",num);
return 1;
}

}
全部回答
  • 1楼网友:末日狂欢
  • 2021-11-13 08:40
#include
#include
#include
#include

bool is_prime(int x)
{
int i;
bool r = true;
for (i = 2; i <= int (sqrt(x)); ++i)
{
if (x % i == 0)
{
r = false;
break;
}
}
return r;
}

int main()
{
int a[20];
int i;
srand(int (time(0)));
for (i = 0; i < 20; ++i)
{
a[i] = int ((rand() * 100.0) / RAND_MAX);
if (is_prime(a[i]))
a[i] = -1;
}
for (i = 0; i < 20; ++i)
{
if (a[i] != -1)
printf("%d ", a[i]);
}
printf("\n");
}追答行吗?追问谢谢谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯