#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;}
时间: 2023-11-30 15:04:41 浏览: 87
这段代码有几个明显的问题:
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>int main(){int n,i,sum;printf(“输入数n:”);scanf(“%d”,&n);while(i<=n);{sum = sum+i;i++;}printf(“sum=%d\n”,sum);return 0;}
这段代码有一些错误。应该修改为:
```c
#include <stdio.h>
int main() {
int n, i = 1, sum = 0;
printf("输入数n:");
scanf("%d", &n);
while (i <= n) {
sum = sum + i;
i++;
}
printf("sum=%d\n", sum);
return 0;
}
```
主要的改动有:
1. 在 `main` 函数的开头,需要将变量 `i` 和 `sum` 初始化为 1 和 0。
2. 在 `while` 循环的条件中,应该去掉多余的分号。
3. 在 `while` 循环的语句块中,应该先执行累加操作,然后再将变量 `i` 自增。
4. 最后一行的分号应该改为中文的分号。
这段代码的作用是从 1 到 n 求和,其中 n 是从键盘输入的一个自然数,sum 是计算结果。
#include <math.h> #include <stdio.h> double fun(int n) { } main() { int n; double sum; printf("\n\nInput n: "); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); }用C语言
以下是一个简单的程序,可以计算出1到n的平方根倒数之和:
```
#include <stdio.h>
#include <math.h>
double fun(int n) {
double sum = 0.0;
int i;
for (i = 1; i <= n; i++) {
sum += 1.0 / sqrt(i);
}
return sum;
}
int main() {
int n;
double sum;
printf("\n\nInput n: ");
scanf("%d", &n);
sum = fun(n);
printf("\n\nsum=%f\n\n", sum);
return 0;
}
```
函数`fun`接受一个整数`n`作为参数,返回1到n的平方根倒数之和。主函数中输入n,调用fun函数,然后输出结果。
阅读全文