#include<stdio.h> int sum(int n) { int r = 0,i; for (i = 0; i < n; i++); { r += i; } return r; } long fac(int n) { int r = 1, i=0; for (i = 1; i < n + 1; i++) { r *= i; } return r; } int main(void) { int n; //scanf_s("%d", &n); printf("%d\n", sum(n)); printf("%d\n", fac(n)); return 0; }这段代码有什么问题
时间: 2023-12-04 10:02:25 浏览: 41
这段代码可能存在以下两个问题:
1. 在求和函数 sum 中,for 循环的语句块后面多了一个分号,这会导致循环体内的语句不会被执行,因此 sum 函数的返回值始终为 0。
2. 在计算阶乘时,变量 r 的类型应该为 long 或者 long long,否则当 n 较大时会导致结果出错。
下面是修改建议:
1. 删除 sum 函数中多余的分号。
```
int sum(int n) {
int r = 0, i;
for (i = 0; i < n; i++) {
r += i;
}
return r;
}
```
2. 将 fac 函数中的变量 r 的类型改为 long 或 long long。
```
long long fac(int n) {
long long r = 1, i;
for (i = 1; i < n + 1; i++) {
r *= i;
}
return r;
}
```
3. 在 main 函数中,应该先读入 n 的值再进行计算。
```
int main(void) {
int n;
scanf("%d", &n);
printf("%d\n", sum(n));
printf("%lld\n", fac(n));
return 0;
}
```
相关问题
#include <stdio.h>int main(){int n,i,sum;printf(“输入数n:”);scanf(“%d”,&n);i=1;sum=0;do{sum = sum+i;i--;}while(i<=n);printf(“sum=%d\n”,sum);return 0;}
这段代码有几个明显的问题:
1. 缺少头文件 `#include <stdlib.h>`,这样会导致 `scanf` 和 `printf` 函数无法正常使用。
2. `do-while` 循环的判断条件是 `i<=n`,这会导致程序进入无限循环。应该改为 `i<=n && i>=1`。
3. 在 `printf` 函数中,字符串常量应该使用双引号("),而不是中文引号(“)。
经过修复后的代码如下:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, sum;
printf("输入数n:");
scanf("%d", &n);
i = n;
sum = 0;
do {
sum = sum + i;
i--;
} while (i >= 1 && i <= n);
printf("sum=%d\n", sum);
return 0;
}
```
#include+<stdio.h> #include+<math.h> int+main() { int+i,+j,+sum+=+0; for+(i+=+2;+i+<=+5000;+i++)
这段代码是一个求解1到5000之间所有偶数的和的程序。代码中使用了for循环和if语句来判断每个数是否为偶数,并将偶数累加到sum变量中。最后,程序输出sum的值。
```c
#include <stdio.h>
int main()
{
int i, sum = 0;
for (i = 2; i <= 5000; i++)
{
if (i % 2 == 0)
{
sum += i;
}
}
printf("The sum of even numbers from 1 to 5000 is %d\n", sum);
return 0;
}
```
相关推荐
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)