请修改下列程序,使其输出正确结果 /***********FOUND***********/ 后是有问题的代码 #include <stdio.h> /**********FOUND**********/ void fun( int n) { int i,k=1; if(m<=1) k=0; /**********FOUND**********/ for(i=1;i<m;i++) /**********FOUND**********/ if(m%i=0) k=0; /**********FOUND**********/ return m; } int main() { int m,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf("%4d",m);k++; if(k%5==0) printf("\n"); } }
时间: 2023-07-18 15:44:28 浏览: 115
以下是修改后的程序:
```
#include <stdio.h>
int fun(int m) {
int i, k = 1;
if (m <= 1) k = 0;
for (i = 2; i < m; i++) {
if (m % i == 0) {
k = 0;
break;
}
}
return k;
}
int main() {
int m, k = 0;
for (m = 2; m < 100; m++) {
if (fun(m) == 1) {
printf("%4d", m);
k++;
if (k % 5 == 0) printf("\n");
}
}
return 0;
}
```
修改的地方:
1. 函数 `fun` 的参数应该是 `m`,而不是 `n`。
2. 在函数 `fun` 中,应该从 `2` 开始循环,因为 `1` 和所有大于 `m` 的数都不需要判断。
3. 在函数 `fun` 中,判断是否为质数的条件应该是 `m % i == 0`,而不是 `m % i = 0`,后者是赋值操作,而不是比较操作。
4. 在函数 `fun` 中,如果发现 `m` 不是质数,应该立即退出循环,而不是继续判断。
5. 在主函数 `main` 中,应该从 `2` 开始循环,因为 `1` 不是质数。
6. 在主函数 `main` 中,应该在循环内调用 `fun` 函数来判断是否为质数。
阅读全文