挺多的所以没有全解释,对某些不容易理解做了解释。如有问题评论区指出谢谢
1、在屏幕上输出以下图形
***********
VERY GOOD!
***********
#include int main() {printf("***********\n");printf("VERY GOOD!\n");printf("***********\n");}
2、输入两个数,输出最大数。
#include int main() {int num1, num2;scanf("%d %d", &num1, &num2);if (num1 > num2) {printf("最大数是: %d\n", num1);} else {printf("最大数是: %d\n", num2);}}
3、输入两个整数,将其按由小到大的顺序输出。
#include int main() {int num1, num2;scanf("%d %d", &num1, &num2);if (num1 < num2) {printf("由小到大的顺序: %d %d\n", num1, num2);} else {printf("由小到大的顺序: %d %d\n", num2, num1);}}
4、输入三个整数,将其按由小到大的顺序输出。
#include int main() {int num1, num2, num3;scanf("%d %d %d", &num1, &num2, &num3);if (num1 <= num2 && num1 <= num3) {printf("%d ", num1);if (num2 <= num3) {printf("%d %d\n", num2, num3);} else {printf("%d %d\n", num3, num2);}} else if (num2 <= num1 && num2 <= num3) {printf("%d ", num2);if (num1 <= num3) {printf("%d %d\n", num1, num3);} else {printf("%d %d\n", num3, num1);}} else {printf("%d ", num3);if (num1 <= num2) {printf("%d %d\n", num1, num2);} else {printf("%d %d\n", num2, num1);}}}
5、输入一个数,判断其是否为奇数,是则输出YES,否则输出NO。
#include int main() {int num;scanf("%d", &num);if (num % 2 == 1) {printf("YES\n");} else {printf("NO\n");}}
6、输入一个两位整数,求其各个位上数字的和。
#include int main() {int num;scanf("%d", &num);int tens_digit = num / 10;int ones_digit = num % 10;int sum = tens_digit + ones_digit;printf("各个位上数字的和为: %d\n", sum);}
7、输入一个三位整数,判断其是否为水仙花数。
#include int main() {int num, originalNum, remainder, result = 0;scanf("%d", &num);originalNum = num;while (originalNum != 0) {remainder = originalNum % 10;result += remainder * remainder * remainder;originalNum /= 10;}if (result == num) {printf("%d 是水仙花数\n", num);} else {printf("%d 不是水仙花数\n", num);}}
代码的逻辑如下:
- 定义需要的变量:num(输入的整数),originalNum(num的副本,用于在循环中修改),remainder(余数,用于获取num的个位数字),和result(用于计算数字的n次幂之和)。
- 使用scanf函数从用户输入中读取一个整数,并将其存储在变量num中。
- 将num的值复制到originalNum,以便在循环中修改num的值。
- 使用while循环,只要originalNum不为0,就继续循环。
- 在每次循环中,计算originalNum除以10的余数,并将结果存储在remainder中。这个余数实际上是originalNum的个位数字。
- 将余数(也就是个位数字)的三次幂加到result上。
- 将originalNum除以10,以便在下一次循环中处理下一位数字。
- 循环结束后,检查result是否等于原始的num。
- 如果等于,打印出该数是水仙花数。
- 如果不等于,打印出该数不是水仙花数。
8、输入一个四位整数,判断其各个位的和是否为奇数。
#include int main() {int num;scanf("%d", &num);int sum = 0;while (num != 0) {sum += num % 10;num /= 10;}if (sum % 2 == 1) {printf("各个位的和为奇数\n");} else {printf("各个位的和不为奇数\n");}}
9、输入一个整数,判断其百位上的数字与个位上的数字是否相同。
#include int main() {int num;scanf("%d", &num);int hundreds_digit = (num / 100) % 10;int ones_digit = num % 10;if (hundreds_digit == ones_digit) {printf("百位上的数字与个位上的数字相同\n");} else {printf("百位上的数字与个位上的数字不相同\n");}}
10、输入一个整数,判断其是否是3的倍数。
#include int main() {int num;scanf("%d", &num);if (num % 3 == 0) {printf("%d 是3的倍数\n", num);} else {printf("%d 不是3的倍数\n", num);}}
11、输入一个整数,判断其是否是在1至20之间的整数。
#include int main() {int num;scanf("%d", &num);if (num >= 1 && num <= 20) {printf("%d 在1至20之间\n", num);} else {printf("%d 不在1至20之间\n", num);}}
12、输入一个整数,判断其是否能同时整除3和5。
#include int main() {int num;scanf("%d", &num);if (num % 3 == 0 && num % 5 == 0) {printf("%d 能同时整除3和5\n", num);} else {printf("%d 不能同时整除3和5\n", num);}}
13、输入一个年份,判断其是否为闰年。
#include int main() {int year;scanf("%d", &year);if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d 是闰年\n", year);} else {printf("%d 不是闰年\n", year);}}
if
语句,用于判断该年份是否是闰年。- 如果该年份能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年。
- 这与闰年的定义相符:普通闰年是每4年出现一次,但在世纪之年(如1900年或2100年),它们不是闰年。但是,在400的倍数(如1600年或2000年)的年份,它们是闰年。
14、练习:输入x,求y
x+1 (x>=10)
y= {x (0<x<10)
x-1 (x<=0)
#include int main() {int x, y;scanf("%d", &x);if (x >= 10) {y = x + 1;} else if (x > 0 && x < 10) {y = x;} else {y = x - 1;}printf("对应的 y 值为 %d\n", y);}
15、求1~100所有奇数和。
#include int main() {int sum = 0;for (int i = 1; i <= 100; i += 2) {sum += i;}printf("1~100所有奇数的和为 %d\n", sum);}
16、求6!= 6*5*4*3*2*1
#include int main() {int n = 6;int factorial = 1;for (int i = 1; i <= n; i++) {factorial *= i;}printf("6的阶乘是 %d\n", factorial);}
如果是8!,9!。直接改n的值比较方便
17、求2的5次方。
#include #include int main() {int base = 2;int exponent = 5;int result = pow(base, exponent);printf("2的5次方是 %d\n", result);}
1.#include 是一个调用数学函数库的头文件。
4.int result = pow(base, exponent);
这行代码调用了数学库中的pow
函数,计算 base 的 exponent 次方,并将结果存储在result
变量中。
18、求1-3+5-7+9……+101的值。
#include int main() {int sum = 0;int start = 1;int end = 101;int step = 2;for (int i = start; i <= end; i += step) {if (i % 4 == 1) {sum += i;} else {sum -= i;}} printf("1-3+5-7+9……+101 的值是 %d\n", sum);}
程序流程如下:
- 初始化四个整数变量:sum(和,初始值为0)、start(起始值,初始值为1)、end(结束值,初始值为101)和step(步长,初始值为2)。
- 使用for循环从start到end,每次增加step。
- 在循环内部,检查当前的数字i除4是否余数为1。如果是,则将i加到sum上;否则,从sum中减去i。
- 最后,使用printf函数输出计算得到的和。
19、输入5个整数,输出这5个数的和。
#include int main() {int num1, num2, num3, num4, num5;scanf("%d %d %d %d %d", &num1, &num2, &num3, &num4, &num5);int sum = num1 + num2 + num3 + num4 + num5;printf("这5个整数的和是 %d\n", sum);}
20、输入5个整数,输出其最大数。
#include int main() {int num1, num2, num3, num4, num5;scanf("%d %d %d %d %d", &num1, &num2, &num3, &num4, &num5);int max = num1;if (num2 > max) {max = num2;}if (num3 > max) {max = num3;}if (num4 > max) {max = num4;}if (num5 > max) {max = num5;}printf("这5个整数中的最大数是 %d\n", max);}
- 使用一系列的
if
语句来检查每一个数是否大于当前的max
值。如果是,则更新max
的值。
21、输出数列的前20项,1,1,2,3,5,8,13,……
#include int main() {int n = 20;int a = 1, b = 1, c;printf("%d %d ", a, b);for (int i = 3; i <= n; i++) {c = a + b;printf("%d ", c);a = b;b = c;}}
- 定义了几个整数变量:
n
(用于指定要计算的项数)、a
和b
(用于存储数列中的前两个数)、以及c
(用于存储数列中的当前数)。 printf("%d %d ", a, b);
这行代码用于打印数列的前两个数。for
循环用于计算并打印数列中的后n-2个数。循环变量i
从3开始,每次增加1,直到达到用户指定的项数n
。- 在循环内部,首先计算当前数
c
,它是前两个数的和。然后使用printf
函数打印这个数。 - 然后,将前一个数
b
赋值给a
,将当前数c
赋值给b
,以便在下一次循环中计算下一个数。
最后输出
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
22、输出100至999之间所有水仙花数。
#include int main() {for (int num = 100; num <= 999; num++) {int originalNum = num;int sum = 0;while (originalNum != 0) {int remainder = originalNum % 10;sum += remainder * remainder * remainder;originalNum /= 10;}if (sum == num) {printf("%d ", num);}}}
- 使用for循环遍历所有的三位数(从100到999):
for (int num = 100; num <= 999; num++)
- 在循环内部,首先保存当前的数到
originalNum
,然后初始化一个变量sum
为0,用于计算各位数字的立方和。 - 使用while循环来分离
originalNum
的每一位数字:remainder = originalNum % 10;
获取最后一位数字。sum += remainder * remainder * remainder;
将该数字的立方加到sum
。originalNum /= 10;
去掉已处理的最后一位数字。
- 检查分离出的各位数字的立方和是否等于原始的数:
if (sum == num)
。如果是,则打印该数。 - 当for循环完成后,程序结束。
23、输出1900至2500之间所有闰年。
#include int main() {for (int year = 1900; year <= 2500; year++) {if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d ", year);}}}
24、输出1900至2500之间所有闰年,输出8个年份即换行。
#include int main() {int count = 0;for (int year = 1900; year <= 2500; year++) {if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {printf("%d ", year);count++;if (count % 8 == 0) {printf("\n");}}}}
25、2+22+222+2222+22222用循环实现。
#include int main() {int n = 5; int num = 2;int sum = 0;for (int i = 1; i <= n; i++) {sum += num;num = num * 10 + 2;}printf("2+22+222+2222+22222 的和为: %d\n", sum);}
26、1+12+123+1234+12345
#include int main() {int n = 5;int num = 1;int sum = 0;for (int i = 1; i <= n; i++) {sum += num;num = num * 10 + (i + 1);}printf("1+12+123+1234+12345 的和为: %d\n", sum);}
27、百钱百鸡,100文钱,买100只鸡。公鸡5文钱一只,母鸡3文钱一只,小鸡1文3只。
#include int main() {for (int cocks = 0; cocks <= 20; cocks++) {for (int hens = 0; hens <= 33; hens++) {int chicks = 100 - cocks - hens;if (cocks * 5 + hens * 3 + chicks / 3 == 100 && chicks % 3 == 0) {printf("公鸡:%d只,母鸡:%d只,小鸡:%d只\n", cocks, hens, chicks);}}}}
- 程序首先从0开始循环,遍历公鸡的数量(
cocks
)。 - 对于每个公鸡的数量,它再循环遍历母鸡的数量(
hens
)。 - 对于每对公鸡和母鸡的数量,它计算小鸡的数量(
chicks
),这是通过从总数100中减去公鸡和母鸡的数量得到的。 - 接下来,它检查公鸡、母鸡和小鸡的总价是否为100。这是通过以下方程进行的:
cocks * 5 + hens * 3 + chicks / 3 == 100
。这里,小鸡的价格是每三只一元,所以需要除以3。 - 如果总价为100,程序会打印出当前的公鸡、母鸡和小鸡的数量。
- 注意:代码中,
chicks % 3 == 0
这个条件是为了确保小鸡的数量是3的倍数。这是因为每三只小鸡算作一块钱。
28、输入一个整数,判断其是几位数。
#include int main() {int num;scanf("%d", &num);int digits = 0;int temp = num;while (temp != 0) {temp /= 10;digits++;}printf("%d 是 %d 位数\n", num, digits);}
29、输入一个整数,使其逆序输出。
#include int main() {int num;scanf("%d", &num);printf("按顺序输出各位数字: ");while (num != 0) {int digit = num % 10;printf("%d ", digit);num /= 10;}}
%10取余,/10取整。例如1234%10=4,1234/10=123。
30、输入长和宽,求矩形的周长和面积。
#include int main() {float length, width;printf("请输入矩形的长: ");scanf("%f", &length);printf("请输入矩形的宽: ");scanf("%f", &width);float perimeter = 2 * (length + width);float area = length * width;printf("矩形的周长是: %.2f\n", perimeter);printf("矩形的面积是: %.2f\n", area);}
31、输入半径,求半圆的周长和面积。 pi取3.14
#include int main() {float radius;scanf("%f", &radius);float pi = 3.1432;float semicircle_circumference = 2 * pi * radius + radius; // 半圆周长float semicircle_area = 0.5 * pi * radius * radius; // 半圆面积printf("半圆的周长是: %.2f\n", semicircle_circumference);printf("半圆的面积是: %.2f\n", semicircle_area);}
32、输入5个整数,求其和及平均值。
#include int main() {int num1, num2, num3, num4, num5;printf("请输入5个整数: ");scanf("%d %d %d %d %d", &num1, &num2, &num3, &num4, &num5);int sum = num1 + num2 + num3 + num4 + num5;float average = sum / 5.0;printf("这5个整数的和是: %d\n", sum);printf("这5个整数的平均值是: %.2f\n", average);}
也可以用数组+average()函数
33、输入学生成绩,判断成绩等级。
100~90 优秀
89~80 良好
79~70 中等
69~60 及格
60以下 不及格
用两种方法:
(1)if
#include int main() {int score;printf("请输入学生成绩: ");scanf("%d", &score);if (score >= 90 && score = 80 && score = 70 && score = 60 && score < 70) {printf("及格\n");} else (score < 60) {printf("不及格\n");} }
(2)switch
#include int main() {int score;printf("请输入学生成绩: ");scanf("%d", &score);switch (score / 10) {case 10:case 9:printf("成绩等级: 优秀\n");break;case 8:printf("成绩等级: 良好\n");break;case 7:printf("成绩等级: 中等\n");break;case 6:printf("成绩等级: 及格\n");break;default:printf("成绩等级: 不及格\n");break;}}
34、输入一个整数,判断其是否为质数。
#include #include bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;scanf("%d", &num);if (is_prime(num)) {printf("%d 是质数\n", num);} else {printf("%d 不是质数\n", num);}}
- #include :引入布尔类型库,这样可以使用bool和true(真)、false(假)等关键字。
- bool is_prime(int num) :定义一个函数is_prime,它接受一个整数参数num,返回一个布尔值。这个函数用于判断传入的整数是否是质数。
- if (num <= 1) {:如果传入的数字小于或等于1,那么它不是质数。
- return false;:返回false,表示这个数字不是质数。
- for (int i = 2; i * i <= num; i++) :开始一个for循环,从2开始到平方根(因为一个大于平方根的因子必然与一个小于平方根的因子配对)。
- if (num % i == 0) :如果传入的数字能被循环变量整除,那么它不是质数。
- return false;:返回false,表示这个数字不是质数。
- return true;:如果循环结束还没有返回false,那么这个数字是质数,返回true。
- if (is_prime(num)) {:调用之前定义的is_prime函数检查传入的数字是否是质数。
35、输入一个字符,如果是大写字母,则转为小写,否则原样输出。
#include int main() {char character;scanf(" %c",&character);if (character >= 'A' && character <= 'Z') {character += 'a' - 'A'; }printf("处理后的字符: %c\n", character);}
36、输入一串字符串,统计其中大写字母的个数。
#include int main() {char str[100];scanf("%s", str);int uppercase_count = 0;int i = 0;while (str[i] != '\0') {if (str[i] >= 'A' && str[i] <= 'Z') {uppercase_count++;}i++;}printf("大写字母的个数: %d\n", uppercase_count);}
循环while (str[i] != ‘\0’),str[]只要不为\0就一直循环。在循环中加入i++;来遍历数组。
37、输入一个字符串,统计其中大写字母的个数,小写字母的个数,数字的个数,以及其他字符的个数。
#include int main() {char str[100];scanf("%s", str);int uppercase_count = 0;int lowercase_count = 0;int digit_count = 0;int other_count = 0;int i = 0;while (str[i] != '\0') {if (str[i] >= 'A' && str[i] = 'a' && str[i] = '0' && str[i] <= '9') {digit_count++;} else {other_count++;}i++;}printf("大写字母的个数: %d\n", uppercase_count);printf("小写字母的个数: %d\n", lowercase_count);printf("数字的个数: %d\n", digit_count);printf("其他字符的个数: %d\n", other_count);}
38、输入五个数,使其倒序输出。
#include int main() {int numbers[5];for (int i = 0; i = 0; i--) {printf("%d ", numbers[i]);}}
39、输入1 2 3 4 5
输出5 1 2 3 4
#include int main() {int numbers[5];for (int i = 0; i 0; i--) {numbers[i] = numbers[i - 1];}numbers[0] = temp;for (int i = 0; i < 5; i++) {printf("%d ", numbers[i]);}}
- 定义一个长度为5的整数数组numbers。
- 使用一个for循环从用户输入读取5个整数并存储到数组中。
- 将数组的最后一个元素numbers[4]存储到临时变量temp中。
- 使用另一个for循环将数组中的元素向右移动一位。具体做法是从数组的最后一个元素开始,将其值赋给前一个元素,直到到达数组的第一个元素。
- 最后,使用一个for循环将修改后的数组打印出来。
- 例如输入1 2 3 4 5 将输出5 1 2 3 4
40、输入1 2 3 4 5
输出2 3 4 5 1
#include int main() {int numbers[5];for (int i = 0; i < 5; i++) {scanf("%d", &numbers[i]);}int temp = numbers[0];for (int i = 0; i < 4; i++) {numbers[i] = numbers[i + 1];}numbers[4] = temp;for (int i = 0; i < 5; i++) {printf("%d ", numbers[i]);}}
- 定义一个长度为5的整数数组numbers。
- 使用一个for循环从用户输入读取5个整数并存储到数组中。
- 将数组的第一个元素numbers[0]存储到临时变量temp中。
- 使用另一个for循环将数组中的元素向左移动一位。具体做法是从数组的第一个元素开始,将其值赋给下一个元素,直到到达数组的最后一个元素。
- 最后,将临时变量temp中的值赋给数组的最后一个元素。
- 使用一个for循环将修改后的数组打印出来。
41、输入10个数,统计其中负数的个数。
#include int main() {int count = 0;for (int i = 0; i < 10; i++) {int num;scanf("%d", &num);if (num < 0) {count++;}}printf("负数的个数为: %d\n", count);}
42、输入10个数,统计其中水仙花数的个数。
#include #include int isArmstrong(int num) {int originalNum = num;int n = 0;int sum = 0;while (originalNum != 0) {originalNum /= 10;n++;}originalNum = num;while (originalNum != 0) {int digit = originalNum % 10;sum += pow(digit, n);originalNum /= 10;}return sum == num;}int main() {int count = 0;printf("请输入10个数:\n");for (int i = 0; i < 10; i++) {int num;scanf("%d", &num);if (isArmstrong(num)) {count++;}} printf("水仙花数的个数为: %d\n", count);}
头文件包含:
#include #include
这里引入了两个头文件:
stdio.h
用于标准输入输出,而math.h
用于数学运算(例如pow
函数,double pow(double x, double y)返回x的y次幂,即 x^y)。
2.isArmstrong函数:
这个函数用于判断一个整数是否是水仙花数。* `int originalNum = num;`: 保存输入的数字的原始值。* `int n = 0;`: 存储输入数字的位数。* `int sum = 0;`: 存储各位数字的n次幂之和。* 第一个`while`循环计算数字的位数。* 第二个`while`循环计算每个数字的n次幂并加到`sum`中。* 最后,检查`sum`是否等于原始的`num`。
3.main函数
* `int count = 0;`: 初始化计数器,用于统计水仙花数的数量。* 使用`printf`提示用户输入10个数。* 使用`for`循环和`scanf`读取10个整数。* 使用`isArmstrong`函数检查每个数字是否是水仙花数,并相应地增加计数器。* 最后,使用`printf`输出水仙花数的数量。
43、输入10个数,统计其中质数的个数。
#include #include bool isPrime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int count = 0;for (int i = 0; i < 10; i++) {int num;scanf("%d", &num);if (isPrime(num)) {count++;}}printf("质数的个数为: %d\n", count);}
isPrime函数的工作原理如下:
- 如果数字小于或等于1,直接返回
false
(因为1不是质数)。 - 对于2到该数字的平方根之间的所有数字(理解不了就直接到该数字),检查是否能够整除该数字。如果可以,则该数字不是质数,返回
false
。 - 如果循环完成而没有找到任何因子,则该数字是质数,返回
true
。
44、输入0~9之间任意数,19个,统计其中0多少个,1多少个,……,9多少个。
#include int main() {int count[10] = {0};for (int i = 0; i = 0 && num <= 9) {count[num]++;}}for (int i = 0; i < 10; i++) {printf("%d的个数为: %d\n", i, count[i]);}}
定义并初始化数组:
int count[10] = {0};
定义了一个整数数组
count
,其大小为10。数组的每个元素都被初始化为0。这个数组用于统计每个数字出现的次数。判断和计数:
if (num >= 0 && num <= 9) {count[num]++;}
这里首先检查数字是否在0到9的范围内(包括0和9)。如果是,则对应的
count
数组的元素增加1,表示该数字出现了一次。输出结果:
for (int i = 0; i < 10; i++) {printf("%d的个数为: %d\n", i, count[i]);}
这个循环会遍历数组
count
,并使用printf
函数输出每个数字0-9及其出现的次数。
45、输入两个整数,输出最大数。
#include // 声明函数int findMax(int a, int b);int main() {int num1, num2;// 输入两个整数printf("请输入两个整数: ");scanf("%d %d", &num1, &num2);// 调用函数并输出结果printf("最大数是: %d\n", findMax(num1, num2));}// 定义函数int findMax(int a, int b) {return (a > b) ? a : b;}
46、输入三个整数,输出最大数。
#include // 声明函数int findMax(int a, int b, int c);int main() {int num1, num2, num3;// 输入三个整数printf("请输入三个整数: ");scanf("%d %d %d", &num1, &num2, &num3);// 调用函数并输出结果printf("最大数是: %d\n", findMax(num1, num2, num3));}// 定义函数int findMax(int a, int b, int c) {int max = a;if (b > max) max = b;if (c > max) max = c;return max;}
47、用调用函数的方法,实现输入一个三位数,判断其是否为水仙花数。
#include #include // 声明函数bool isNarcissistic(int number);int main() {int num;// 输入一个三位数printf("请输入一个三位数: ");scanf("%d", &num);// 调用函数判断并输出结果if (isNarcissistic(num)) {printf("%d 是水仙花数\n", num);} else {printf("%d 不是水仙花数\n", num);}}// 定义函数bool isNarcissistic(int number) {int original = number;int sum = 0;while (number > 0) {int digit = number % 10;sum += digit * digit * digit;number /= 10;}return sum == original;}
48、用调用函数的方法,实现输入一个年份,判断其是否为闰年。
#include #include // 声明函数bool isLeapYear(int year);int main() {int year;// 输入一个年份printf("请输入一个年份: ");scanf("%d", &year);// 调用函数判断并输出结果if (isLeapYear(year)) {printf("%d 是闰年\n", year);} else {printf("%d 不是闰年\n", year);}}// 定义函数bool isLeapYear(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);}
49、用调用函数的方法,实现输入一个数,判断其是否为质数。
#include #include // 声明函数bool isPrime(int number);int main() {int num;// 输入一个数printf("请输入一个数: ");scanf("%d", &num);// 调用函数判断并输出结果if (isPrime(num)) {printf("%d 是质数\n", num);} else {printf("%d 不是质数\n", num);}}// 定义函数bool isPrime(int number) {if (number <= 1) {return false;}for (int i = 2; i * i <= number; i++) {if (number % i == 0) {return false;}}return true;}
50、一个数列是3/5,5/7,7/9,9/11,…,求这个数列的前20项的和。
#include // 声明函数double calculateSeriesSum(int n);int main() {int n = 20;// 调用函数计算数列前20项的和并输出结果printf("数列前%d项的和为: %.2f\n", n, calculateSeriesSum(n));}// 定义函数double calculateSeriesSum(int n) {double sum = 0;for (int i = 1; i <= n; i++) {sum += (2 * i - 1) / (2 * i + 3.0);}return sum;}