C语言编程求解
编写利用随机数产生若干个整数存入文件,然后从文件中读出整数,显示在屏幕上,并统计文件中有多少个整数,找出其中最大的整数和最小的整数
追问:- -这位大神,能不能写一个程序让我参考一下
答案:参考程序:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void input();
void output();
int main()
{
input();
output();
return 0;
}
void input()
{
int n,m,i;
FILE *pf;
pf=fopen("text.txt","w");
srand((unsigned)time(NULL));//更新随机种子
n=rand()%100;//产生100以内整数,这是产生随机数的个数
for(i=0;i<n;i++)
{
m=rand()%100;//产生100以内整数,准备输出
fprintf(pf,"%d\n",m);//将整数写入文件
}
fclose(pf);
}
void output()
{
int max,min,n,i;
FILE *pf;
pf=fopen("text.txt","r");
min=100,max=0;
for(i=0;fscanf(pf,"%d",&n)!=EOF;i++)
{
printf("%d\n",n);
max=(max>n?max:n);
min=(min<n?min:n);
}
printf("一共%d个整数\n",i);
printf("最大整数为:%d\n",max);
printf("最小正数为:%d\n",min);
}
运行完成后,会自动生成一个text.txt的文件,里边就是写入的数字。不知道LZ是不是这个意思
其他:利用rand()产生随机数,然后一个一个以字符串形式写入文件,至于整数间的分隔符可以自定义一个非数字的就行,读取显示就是fopen fread的事情了,你可以一次性读取到缓冲区中然后遍历字符串的方式,读取到一个分隔符就说明一个整数,最大整数和最小整数就是分别用两个临时变量记录,每读取到一个整数就比较,取较大和较小数更新两个临时变量,最终输出结果即可。 #include<stdio.h>
#include<math.h>
void main()
{double s=0,x,y=0,p;
int i=2;
scanf("%lf",&x);
printf("%lf\n",x);
p=x*x/2;
printf("%lf\n",p);
while(p>pow(10,-5))
{i=i+2;
s+=p;
p=p*x*x/i/(i-1);
printf("%lf\n",p);
}
printf("%lf\n",s);
}
上述程序运行没错,不知道是否符合你的题意..
如果输入n,最后一项,或者还没到最后一项,绝对值就小于10^(-5),输入n有什么意义啊...
如果要输入n,int n;那么输入scanf("%d",&n);就可以了...
上一个:急!!!懂c语言的各位帮我写写这道c语言题 谢谢了
下一个:C语言题目,问题如下!