- 一、问题及代码
- /*
- * 文件名称:数组素数排序.cpp
- * 作 者:周玉杰
- * 完成日期:2017 年 4 月 10 日
- * 版 本 号:v1.0
- * 对任务及求解方法的描述部分:
- * 输入描述:无
- * 问题描述:将一个数组之中的素数存入另一个数组之中并使其排列
- * 程序输出:另一个数组排序前和排序后的样子
- * 问题分析:使用函数来分工
- * 算法设计:无
- */
- #include <iostream>
using namespace std;
void sort(int p[], int n); //数组排序
bool prime(int x); //素数判断
void print(int p[], int n);//输出数组
int main()
{
int a[10] = { 2, 13, 5, 47, 19, 53, 27, 23, 28, 11 };
int b[10], i, j = 0;
int n = 0;
for (i = 0; i<10; i++)
{
j = prime(a[i]);//将a中的素数存入b数组
if (j == 1)
{
b[n++] = a[i];
}
}
print(b, n ); //输出排序前的b数组
sort(b, n ); //对数组b排序
print(b, n ); //输出排序后的b数组
return 0;
}
//下面定义自定义函数
bool prime(int x)
{
int sum = 0;
for (int i = 2; i < x; i++)
{
if (x%i == 0)
{
return 0;
}
else
{
sum++;
}
}
if (sum == x - 2)
{
return 1;
}
}
void sort(int a[], int n)
{
int i, j, k, t;
for (i = 0; i < n; i++)
{
k = i;
for (j = i + 1; j < n; j++)
{
if (a[k] > a[j])
{
k = j;
}
}
if (k != i)
{
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
void print ( int a[], int n)
{
for (int i = 0; i < n; i++)
{
cout << a[i] << '\t';
}
cout<<endl;
} -
- 二、运行结果
- 三、心得体会
- 通过此次实验,让我对函数有了根深的认识,了解到了函数调用的方便与快捷,发现调用函数会使程序更加灵活,也让我对函数的调用更加熟练了。
- 四、知识点总结
- 函数的调用需要想对函数进行声明,再定义自己需要的函数,最后在住函数中进行调用,要注意函数声明是最后需要加分号,函数的定义则不需要加分号。