代码改错:#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-06 16:34:28 浏览: 149
代码改正如下:
```
#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; // 修改点1:分数线应改为除号
}
return y; // 修改点2:应该返回变量 y
}
int main() {
int n = 2000;
printf("\nThe result is %lf\n", fun(n));
return 0; // 修改点3:main 函数应该有返回值
}
```
修改点1:在第12行,将分数线`\`改为除号`/`。
修改点2:在第15行,将返回值改为变量 y。
修改点3:在第18行,将 main 函数的返回值改为0,以遵循 C 语言的规范。
相关问题
要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。 2、提示行下一行为错误行。 (1) 功能:判断m是否为素数,若是返回1,否则返回0。 #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; } void 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"); } }
(1) 功能:判断m是否为素数,若是返回1,否则返回0。
#include <stdio.h>
/**********FOUND**********/
int fun(int m) {
int i,k=1;
if(m<=1) k=0;
/**********FOUND**********/
for(i=2;i<m;i++) /**********FOUND**********/
if(m%i==0) k=0;
/**********FOUND**********/
return k;
}
void 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");
}
}
错误在第 6 行,应该是 if(m<=1) k=0;,判断的是 m 不是 n,同时要把函数返回类型改为 int,函数返回 k。在第 8 行,应该从 i=2 开始循环,因为 1 不是素数。在第 10 行,判断条件应该是 if(m%i==0),判断是否能被整除。最后在第 12 行,要返回 k 而不是 m。
对这段代码进行改错#include <conio.h> #include <stdio.h> #include <stdlib.h> #define N 20 /**********FOUND**********/ void fun( int a, int n ) { int i, j, k, t ; for ( j = 0; j < n-1; j++) { k = j; for ( i = j + 1; i < n ; i++ ) /**********FOUND**********/ if ( a [i] < a[k] ) k = i; t = a[j] ; a[j] = a[k]; a[k] = t; } }
有两处错误需要进行改正:
1. 第一个错误是参数a应该是一个指针类型,而不是一个整型变量。因为如果传递的是一个整型变量,函数内部无法通过指针访问数组元素。因此需要将参数a修改为int a[]或者int *a。
2. 第二个错误是函数定义时缺少了返回值类型,应该将void fun修改为void。
修改后的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 20
void fun(int a[], int n) {
int i, j, k, t;
for (j = 0; j < n-1; j++) {
k = j;
for (i = j + 1; i < n; i++) {
if (a[i] < a[k]) {
k = i;
}
}
t = a[j];
a[j] = a[k];
a[k] = t;
}
}
int main() {
int a[N], i;
for (i = 0; i < N; i++) {
a[i] = rand() % 100;
printf("%d ", a[i]);
}
printf("\n");
fun(a, N);
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```