您的位置:首页 > 编程语言 > C语言/C++

C++第7次作业

2016-06-04 14:45 253 查看
项目1:数组素数排序

#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];
int j = 0;
for (int i=0; i<10; i++) {
if(prime(a[i]))
b[j++] = a[i];
}
print(b, j);
sort(b, j);
print(b, j);
return 0;
}

bool prime(int x) {
if(x == 1)
return 0;
for (int i=2; i<x; i++) {
if(x%i == 0)
return 0;
}
return 1;
}

void sort(int p[], int n) {
for (int i=0; i<n; i++) {
for (int j=i+1; j<n; j++) {
if(p[j]<p[i]) {
int t = p[j];
p[j] = p[i];
p[i] = t;
}
}
}
}

void print(int p[], int n) {
for (int i=0; i<n; i++)
cout << p[i] << ' ';
cout << endl;
}

项目2:奇偶阶乘

#include <iostream>
using namespace std;

bool odd(int n);
int fac(int n);

int main() {
int a[10] = {1, 2, 3, 4, 5, 5, 4, 3, 2, 1};
int s1,s2;
s1 = s2 = 0;
for (int i=0; i<10; i++) {
if(odd(a[i]))
s1 += fac(a[i]);
else
s2 += fac(a[i]);
}
cout << s1 << ' ' << s2 << endl;
return 0;
}

bool odd(int n) {
return n%2;
}

int fac(int n) {
int s = 1;
for (int i=n; i>0; i--) {
s *= i;
}
return s;
}

项目3:杨辉三角

#include <iostream>
using namespace std;

void YHtri(int n);

int main() {
int n;
while (cin >> n) {
if(n == 0) break;
YHtri(n);
}
return 0;
}

void YHtri(int n) {
int a[100][100];
for (int i=0; i<n; i++) {
a[i][0] = 1;
a[i][i] = 1;
}
for (int i=2; i<n; i++) {
for (int j=1; j<n-1; j++) {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for (int i=0; i<n; i++) {
for (int j=0; j<i+1; j++) {
cout << a[i][j] << '\t';
}
cout << endl;
}
cout << endl;
}

项目4:从有一个10个数的数组,求出这10个数的最大数、最小数和平均数,并统计出大于平均数的个数。

#include <iostream>
using namespace std;

double aver(int x[], int n, int &max, int &min);
int count(int x[], int n, double score);

int main() {
int x[10] = {4, 6, 8, 16, 19, 14, 5, 10, 1, 21};
int max, min, num;
double averscore;
averscore = aver(x, 10, max, min);
num = count(x, 10, averscore);
cout << "Max: " << max << ", Min: " << min << ", Average: " << averscore
<< ", Counts: " << num << endl;
return 0;
}

double aver(int x[], int n, int &max, int &min) {
max = min = x[0];
int s = x[0];
for (int i=1; i<n; i++) {
if(x[i] > max)
max = x[i];
if(x[i] < min)
min = x[i];
s += x[i];
}
return s * 1.0/n;
}

int count(int x[], int n, double score) {
int count = 0;
for (int i=0; i<n; i++) {
if(x[i] > score)
count++;
}
return count;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: