c语言函数数组素数 c语言给定数组求素数之和

c语言数组求素数

#include stdio.h

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了新绛免费建站欢迎大家使用!

int main(){

int a=0; // 素数的个数

int num=0; // 输入的整数

printf("输入一个整数:");

scanf("%d",num);

for(int i=2;inum;i++){

if(num%i==0){

a++; // 素数个数加1

}

}

if(a==0){

printf("%d是素数。\n", num);

}else{

printf("%d不是素数。\n", num);

}

return 0;

}

c语言 函数 数组 素数

编写一个函数实现判断一个整数是否是素数。如果输出也在函数内进行,才需要把数组传到函数中,否则只要传数组元素就可以了。

你原来的程序问题在于:

1. 缺少#include"math.h"。因为用到了sqrt();

2. if(ss(a[i])==1)语句中调用函数ss的格式与定义不符:a[i]不能传给a,且缺第二的参数。

3.  判断素数时,没有考虑对数字1的处理。

输出在主程序中进行的话,参考White_MouseYBZ网友的回答,进行修改即可。

如果打印也在函数中进行,原程序可改为:

#include"stdio.h"

#include"math.h"  //增加

main()

{

int a[10],n,i;

void ss(int a[],int n);

scanf("%d",n);

for(i=0;in;i++)

scanf("%d",a[i]);

ss(a,n);//调用函数,判断并输出

/×  for(i=0;in;i++)     //整体删除

if(ss(a[i])==1)

printf("%d\n";a[i]); ×/ 

}

void ss(int a[],int n)  //无需返回值,改成void

{ int k,i,j,result;

for(i=0;in;i++)

{ if(a[i]!=1)    //避免1判断为素数

{ k=sqrt(a[i]);

for(j=2;j=k;j++)

if(a[i]%j==0) break;

if(jk)  printf("%d ",a[i]); //输出素数

}

}

}

c语言输出一个数组中的素数

好的,以下是C语言输出一个数组中的素数的代码:

#include stdio.h

int main() {

int arr[] = {2, 3, 6, 7, 11, 13, 17, 19};

int len = sizeof(arr) / sizeof(arr[0]);

int flag;

printf("The prime numbers in the array are: ");

for (int i = 0; i len; i++) {

flag = 0;

for (int j = 2; j = arr[i] / 2; j++) {

if (arr[i] % j == 0) {

flag = 1;

break;

}

}

if (flag == 0 arr[i] != 1)

printf("%d ", arr[i]);

}

return 0;

}

该程序首先定义了一个整型数组arr,然后计算出数组长度len,接下来通过嵌套循环遍历每个元素,判断该元素是否为素数,最后输出素数。其中,内层循环用于判断元素是否为素数,如果该元素可以被2到(i/2)之间的任意一个整数整除,则该元素不是素数。最后,如果flag值为0且该元素不是1,则表明该元素是素


网站栏目:c语言函数数组素数 c语言给定数组求素数之和
本文地址:http://pwwzsj.com/article/dopgose.html