千家信息网

如何进行C语言中的数组中素数交换

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,如何进行C语言中的数组中素数交换,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目要求(1)在主函数中创建数组num,使用测试数据{10
千家信息网最后更新 2025年01月25日如何进行C语言中的数组中素数交换

如何进行C语言中的数组中素数交换,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

题目要求

(1)在主函数中创建数组num,使用测试数据{108 4 19 7 23 66 49 13 33 35}对其初始化;

(2)定义change函数,将num数组中的素数首尾交换,即第一个素数与最后一个素数交换,第二个素数与倒数第二个素数交换…,非素数保持位置不变;

(3)定义prime函数,用于素数的判断。

#include #include int prime(int num){        int i,k;        if(num>=2)        {                k=sqrt(num);                for(i=2;i<=k;i++)                {                        if(num%i==0)                                break;                }                if(i>=k+1)                        return 1;                else                        return 0;        }        else                return 0;} void change(int* a,int* b){     //定义了类型为int*的指针a,b,指针指向的类型为int        int tmp = *a;     //将指针a所指向的地址中的内容赋值给tmp        *a = *b;   //将指针b所指向的地址中的内容赋值给指针b所指向的地址中的内容        *b = tmp;  }int main(){        int a[10]={108,4,19,7,23,66,49,13,33,35};        int i,j=0,t,p[10];        printf("交换之前的数组:");        for(i=0;i<10;i++)        printf("%4d",a[i]);        for(i=0;i<10;i++)        {                if(prime(a[i])==1)                {                        p[j++]=i;                }        }        for(i=0;i

输出结果:

看完上述内容,你们掌握如何进行C语言中的数组中素数交换的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0