找出错误#include <stdio.h> /**********FOUND**********/ fun ( int m ) { double y = 0, d ; int i ; /**********FOUND**********/ for( i = 100, i <= m, i += 100 ) { d = (double)i * (double)i ; /**********FOUND**********/ y += 1.0 \ d ; } return( y ) ; } int main( ) { int n = 2000 ; printf( "\nThe result is %lf\n", fun ( n ) ) ; }
时间: 2023-07-18 18:44:22 浏览: 83
错误在于函数定义缺少返回类型,应该在函数名前加上返回类型,例如本题中应该为 double fun ( int m )。另外,for循环语句中的逗号应该为分号,即 for( i = 100; i <= m; i += 100 )。代码修改后应该为:
```c
#include <stdio.h>
double fun ( int m ) {
double y = 0, d ;
int i ;
for( i = 100; i <= m; i += 100 ) {
d = (double)i * (double)i ;
y += 1.0 / d ;
}
return( y ) ;
}
int main( ) {
int n = 2000 ;
printf( "\nThe result is %lf\n", fun ( n ) ) ;
}
```
相关问题
源程序如下: #include <stdio.h> int fun(int m) {int i, k ; for (i = m + 1 ; ; i++) { for (k = 2 ; k < i ; k++) /**************found**************/ if (i % k != 0) break ; /**************found**************/ if (k < i) return(i); } } void main() { int n ; n = fun(20); printf("n=%d\n", n); }
这段程序的功能是找出大于 m 的第一个质数,并将其作为函数的返回值。
程序中的错误在于第二个 for 循环的判断条件不正确。应该在循环中判断 i 是否能被 k 整除,如果可以则说明 i 不是质数,跳出循环;如果循环结束后仍然没有找到 i 的因数,则说明 i 是质数,返回 i。
以下是修改后的程序:
```c
#include <stdio.h>
int fun(int m) {
int i, k;
for (i = m + 1;; i++) {
for (k = 2; k < i; k++) {
if (i % k == 0) {
break;
}
}
if (k == i) {
return i;
}
}
}
void main() {
int n;
n = fun(20);
printf("n=%d\n", n);
}
```
运行结果为:
```
n=23
```
#include <stdio.h> int main(void) { int max,i,j,r,c; int a[3][4]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) scanf("%d",&a[i][j]); /***********found***********/ max=12; for(i=0;i<=2;i++) for(j=0;j<=3;j++) /*
*/ if(a[i][j]>max) { max=a[i][j]; r=i; c=j; } printf("max=%d, a[%d][%d]\n",max,r,c); return 0; }
这段代码的功能是寻找一个3行4列的二维数组a中的最大值,并输出该最大值及其所在的行列索引。其中,代码中的语句“max=12;”是一个初始化语句,将变量max的初值设为12。接着,使用两层for循环遍历整个二维数组a,找出其中的最大值,并记录其所在的行列索引(分别用变量r和c表示)。最后,将最大值、行索引和列索引输出。
阅读全文