#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 09:23:52 浏览: 104
这段程序存在几个错误,我帮你指出并修正:
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;
}
```
相关问题
对这段代码进行改错#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;
}
```
修改以下代码“”“#include<stdio.h> #define N 5 typedef struct student{ long sno; char name[10]; float score[3]; }STU; void fun(char *filename,STU n){ FILE *fp; /**********found**********/ fp=fopen(filename,"rb"); /*********”
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n) {
FILE *fp;
fp = fopen(filename, "rb");
if (fp == NULL) {
printf("Cannot open file!\n");
return;
}
fread(&n, sizeof(STU), 1, fp);
printf("sno:%ld\nname:%s\nscore[0]:%.2f\nscore[1]:%.2f\nscore[2]:%.2f\n", n.sno, n.name, n.score[0], n.score[1], n.score[2]);
fclose(fp);
}
int main() {
STU s[N] = {
{20210001, "Tom", {89, 78, 92}},
{20210002, "Jerry", {78, 87, 91}},
{20210003, "Mickey", {90, 77, 83}},
{20210004, "Minnie", {94, 92, 90}},
{20210005, "Donald", {85, 88, 82}}
};
FILE *fp;
fp = fopen("test.dat", "wb");
if (fp == NULL) {
printf("Cannot open file!\n");
return 0;
}
fwrite(&s[2], sizeof(STU), 1, fp);
fclose(fp);
fun("test.dat", s[2]);
return 0;
}
```
阅读全文