编写一个函数,用于在N个整 数中找第一个素数,找到返回地址,没有返回NULL(空指针)
/********************************
* 程序来源:董老师一本通
* 程序名称:159 8.10
* 章 节:8.3 函数指针
* 描 述:编写一个函数,用于在N个整
* 数中找第一个素数,找到返回
* 地址,没有返回NULL(空指针)
* 作 者:tiaya@qq.com
* 运行测试:通过
*******************************/
//#include <bits/stdc++.h> //万能头文件,不建议使用
#include <iostream>
#include <cmath> // sqrt
using namespace std;
int n, a[10001]; //定义一个数组
//fun prime
bool isPrime(int n) {
if (n < 2) return false; // 1 is not prime
if (n == 2) return true; // 2 is a prime
for (int i=2; i <= sqrt(n); i++) { // n>2
if(n % i == 0)
return false;
}
return true;
}
//fun find prime
int* find() {
// n is gloab var
for(int i=1; i<=n; i++)
if (isPrime(a[i]))
return &a[i];
return NULL;
}
//main() star
int main() {
//code here
scanf("%d", &n);
for(int i=1; i<=n; i++) {
scanf("%d", &a[i]); //&a[i]
}
int *p = find();
cout << p;
if(p != NULL) {
printf("%d,%d\n",p, *p);
} else {
printf("can't find!'");
}
return 0;
}
测试:
输入数据:
7
1 6
9
2
3
4
5
输出数据:
0x4ac0904898960,2
--------------------------------
Process exited after 8.487 seconds with return value 0
请按任意键继续. . .