#define N 20 #include <stdio.h> int fun(int m) { /**********FOUND**********/ int s=0,i; for(i=1;i<N;i++) /**********FOUND**********/ if(i%m=0) /**********FOUND**********/ s=*i; return s; } main() { int sum; sum=fun(5); printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum); }程序
时间: 2023-07-01 13:23:52 浏览: 103
#include <stdio.h>
这段程序存在几个错误,我帮你指出并修正:
1. `if(i%m=0)`应该改为`if(i%m==0)`,因为`=`是赋值运算符,而`==`才是判断相等的运算符。
2. `s=*i;`应该改为`s*=i;`,因为题目要求的是所有倍数的积,而不是所有倍数的和。
3. `main()`函数没有写返回值类型,应该改为`int main()`。
修改后的程序如下:
```
#define N 20
#include <stdio.h>
int fun(int m) {
int s=1,i; // s初始化为1,因为后面是要求积
for(i=1;i<N;i++)
if(i%m==0)
s*=i;
return s;
}
int main() {
int sum;
sum=fun(5);
printf("%d以内所有%d的倍数之积为: %d\n",N,5,sum);
return 0;
}
```
阅读全文