#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
double sum = 0;
for (int i = 1; i <= n; i++) {
sum += (double)i / (2 * i - 1);
}
printf("%.2f\n", sum);
return 0;
}
注意sum要强制转换类型
方法2:
#include <stdio.h>
int fun(int n) {
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
int result = fun(n);
printf("1 到 %d 的和为:%d\n", n, result);
return 0;
}
以下是对这段C语言代码的分析:
代码功能
这段代码的主要功能是实现计算从1到用户输入的整数 n 的累加和,并将结果输出显示。
1. fun 函数部分:
- 定义了一个名为 fun 的函数,它接受一个整型参数 n 。
- 在函数内部,通过 for 循环,从 i = 1 开始,每次递增 1 ,直到 i <= n 为止,在循环体中将 i 的值累加到变量 sum 中,最终返回这个累加和 sum 。
2. main 函数部分:
- 首先定义了一个整型变量 n ,然后通过 printf 函数提示用户输入一个整数,接着使用 scanf 函数获取用户输入的整数并存入变量 n 中。
- 调用 fun 函数,将用户输入的 n 作为参数传递进去,把 fun 函数返回的结果保存在变量 result 中。
- 最后通过 printf 函数输出提示信息以及计算得到的从 1 到 n 的累加和,也就是 result 的值。
代码示例运行情况
例如,当用户输入整数 5 时,程序的执行流程如下:
- 在 main 函数中,用户输入 5 被 scanf 接收并存入 n 变量。
- 接着调用 fun 函数,在 fun 函数里的 for 循环会依次让 i 取 1 、 2 、 3 、 4 、 5 ,并将这些值累加到 sum 中,最终 sum 的值为 1 + 2 + 3 + 4 + 5 = 15 ,这个 15 作为返回值返回给 main 函数中的 result 变量。
- 然后在 main 函数中输出 "1 到 5 的和为:15" 这样的结果信息。
可改进之处
- 输入合法性检查方面:当前代码没有对用户输入进行合法性检查,如果用户输入的不是合法的整数(比如输入字母等),程序可能会出现未预期的行为甚至崩溃。可以添加代码来判断 scanf 的返回值,对错误输入进行相应处理,比如提示用户重新输入正确的整数。
- 数据类型范围考虑:如果用户输入的整数非常大,可能会超出 int 类型所能表示的范围,导致溢出问题。对于这种情况,可以考虑使用更大范围的数据类型,比如 long long 类型来处理可能的大数情况。
标签:输出,函数,int,sum,一行,fun,格式,main,输入 From: https://blog.csdn.net/2401_87723168/article/details/144647089