/* 函数fun是根据输入n,求下面分母为n以内(包含n)的素数构成的数列的和 ,输入10,输出:-0.138095。 要求在fun函数的注释语句之间编写程序,其它部分不得增删语句。 */ #include<stdio.h> #include<stdlib.h> double fun(int n) { /*************************Begin*********************/ /**************************End**********************/ } int main() { int n; double s,x; FILE *in,*out; printf("输入n:"); scanf("%d",&n); s=fun(n); printf("%lf\n",s); /*****************/ in=fopen("in2019-2-1-2.dat","r"); out=fopen("out2019-2-1-2.dat","w"); while(!feof(in)) { fscanf(in,"%d",&n); fprintf(out,"%lf\n",fun(n)); } fclose(in); fclose(out); system("pause"); return 0; }
时间: 2023-07-18 16:39:57 浏览: 94
2.请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。_请编写函数fun,它的功能是 求出 1 到 1000 之间能被 7 或11整除、但不能同时被 7_Inspiration666的博客-CSDN博客.mht
下面是符合要求的C语言程序:
```
#include <stdio.h>
#include <math.h>
double fun(int n)
{
int i, j, k, p;
double s = 0, t;
p = 0;
/* 请在以下注释中编写程序 */
for(i = 2; i <= n; i++){
k = sqrt(i);
for(j = 2; j <= k; j++){
if(i % j == 0) break;
}
if(j > k) {
s += 1.0/i;
p++;
}
}
t = (double)p/n;
s = s/t;
/* 请在以上注释中编写程序 */
return s;
}
int main()
{
int n;
double s,x;
FILE *in,*out;
printf("输入n:");
scanf("%d",&n);
s=fun(n);
printf("%lf\n",s);
/*****************/
in=fopen("in2019-2-1-2.dat","r");
out=fopen("out2019-2-1-2.dat","w");
while(!feof(in))
{
fscanf(in,"%d",&n);
fprintf(out,"%lf\n",fun(n));
}
fclose(in);
fclose(out);
system("pause");
return 0;
}
```
程序的核心部分与上一个问题的程序相同。不同之处在于,程序增加了文件读写的部分,从文件"in2019-2-1-2.dat"中读取整数n,调用fun函数计算结果,将结果写入到文件"out2019-2-1-2.dat"中。需要注意的是,文件读写操作之前需要先打开文件,操作完成后需要关闭文件。
阅读全文