扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
#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;
}
编写一个函数实现判断一个整数是否是素数。如果输出也在函数内进行,才需要把数组传到函数中,否则只要传数组元素就可以了。
你原来的程序问题在于:
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语言输出一个数组中的素数的代码:
#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,则表明该元素是素
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流