实验一

题目一

让用户输入两个自然数,求其之间的自然数之和。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;

int sum(int a,int b)
{
if (a<b){
int result = 0;
for (int i = a; i <= b; i++)
result = result + i;
cout << "Result is " << result << endl;
return result;
}
else
{
cout << "Wrong input! First number must bigger than the last one. ";
}


}

int main(void)
{
int a, b;
cin >> a;
cin >> b;
sum(a, b);
}

题目二

判断用户输入的年份是否为闰年

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;

bool IsLeapYear(int year)
{
if (year % 100 == 0)
{
int firstchar = year / 100;
if (firstchar % 4 == 0)
return true;
else
return false;
}
else
{
if (year % 4 == 0)
return true;
else
return false;
}
}

int main(void)
{
int year;
cout << "Input a year to calculate:";
cin >> year;
if (IsLeapYear(year) == true)
cout << year << " is leap year. " << endl;
else
cout << year << " is not leap year. " << endl;
}

实验二

题目一

华氏/摄氏转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
using namespace std;

float f2c(int t) {
float result;
result = 5 * (t - 32) / 9;
return result;
}

float c2f(int t) {
float result;
result = (9 * t + 32) / 5;
return result;
}

int main(void) {
char calctype;
cout << "C2F(c) or F2C(f)?";
cin >> calctype;
float temperature;
switch (calctype) {
case 'c':
cout << "Enter temperature in Celsius:";
cin >> temperature;
cout << "Result is " << c2f(temperature) << endl;
break;
case 'f':
cout << "Enter temperature in Fahrenheit:";
cin >> temperature;
cout << "Result is " << f2c(temperature) << endl;
break;
default:
cout << "Invalid input.";
}
}

题目二

递归方式求斐波那契级数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;

long long fib(unsigned int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}

int main(void)
{
unsigned int n;
cout << "Please enter Fibonacci series number:";
cin >> n;
cout << "The Fibonacci number is: " << fib(n) << endl;
}

题目三

递归方式求n阶勒让德多项式的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;

float legendre(int n,float x)
{
if (n == 0)
return 1;
if (n == 1)
return x;
else
return ((2 * n - 1) * x * legendre(n - 1, x) - (n - 1) * legendre(n - 2, x)) / n;
}

int main(void)
{
cout << "Enter the number of Legendre polynomial terms:";
int n;
cin >> n;
cout << "Enter the value of the x:";
float x;
cin >> x;
cout << "The result is " << legendre(n, x) << endl;
}

实验三

题目一

编写一个3×3矩阵转置的函数,在main()函数中输入数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;

void move(int* pointer) {
int i, j, t;
for (i = 0; i < 3; i++) {
for (j = i; j < 3; j++) {
t = *(pointer + 3 * i + j);
*(pointer + 3 * i + j) = *(pointer + 3 * j + i);
*(pointer + 3 * j + i) = t;
}
}
}

int main(void){
int a[3][3], * p, i;
for (i = 0; i < 3; i++)
cin >> a[i][0] >> a[i][1] >> a[i][2];
p = &a[0][0];
move(p);
for (i = 0; i < 3; i++)
cout << a[i][0] << " " << a[i][1] << " " << a[i][2] << endl;
return 0;
}

题目二

设学生人数N=60,提示用户输入N个人的考试成绩,然后计算出他们的平均成绩并显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;

int main(void){
int n;
cout << "How many students:";
cin >> n;
int* p = new int[n];
for (int i = 1; i <= n; i++) {
cout << "Type the points of No." << i << " student:";
cin >> p[i];
}
float sum = 0;
for (int j = 1; j <= n; j++) {
sum = sum + p[j];
}
float average = sum / n;
cout << "Average is:" << average << endl;
}