利用malloc动态分配内存,赋值判断是否为素数
使用malloc函数为指针分配n个整型内存空间,随机赋值n个两位整数,并将这n个整数中的素数全部输出。
#include <stdio.h>
#include <math.h>
int isPrime(int x);
int main()
{
int n,*a;
scanf("%d",&n);
a=(int*)malloc(n*sizeof(int));
//"借"系统一块空间
//malloc返回的是地址
for(int i=0;i<n; i++){
scanf("%d",&a[i]);
if(isPrime(a[i]))
{
printf("%d",a[i]);
}
}
free(a);//还回去
}
int isPrime(int x)//判断是否是素数
{
int ret = 1;
int i;
if (x == 1 || (x % 2 == 0 && x != 2))//判断偶数
ret = 0;
for (i = 3; i < sqrt(x); i += 2)//判断奇数
{
if (x % i == 0) {
ret = 0;
break;
}
}
return ret;
}