问题描述
- C语言文件读取的问题。
-
#include
int main()
{
int n;
FILE *fp;
FILE *qw;
int i;
int j;
qw=fopen("out.txt","w");
fp=fopen("Din.txt","r");
fscanf(fp,"%d",&n);
if (fp==NULL)
{printf("n文件打开失败!n"); } for(j=0;j<=n;j++) { for(i=2;i<j;i++) { if(j%i==0) { fprintf(qw,"%4d",j); } } } fclose(fp); fclose(qw); return 0;
}
该代码能实现从in.txt中读取一个整数n,然后将0到n的质数写入out.txt中吗?
解决方案
if (fp==NULL) 为什么不返回,还继续下去?
求质数的完全错了。。。。
if(j%i==0)
{
fprintf(qw,"%4d",j);
}
质数是这么定义的么?
解决方案二:
你这不是求质数,看着像求n的倍数,质数算法,网上很多,你找一个看看,就明白了
解决方案三:
int flag;
for(j=0;j<=n;j++)
{
flag = 1;
for(i=2;i<j;i++)
{
if(j%i==0)
{
flag =0;
break;
}
}
if(flag==1){
fprintf(qw,"%4d",j);
}
}
解决方案四:
质数不太好判断,判断素数会好一些
然后用if语句判断,如果该数是质数,就跳过,否则输入,就行
解决方案五:
质数不太好判断,判断素数会好一些
然后用if语句判断,如果该数是质数,就跳过,否则输入,就行
解决方案六:
第一个质数2好像就没找出来吧
解决方案七:
已经开始读取才判断是不是没有这个文件,是不是有点问题啊!
解决方案八:
该程序漏洞百出 建议好好看看文件IO的操作以及相关逻辑的实现 关键是思想一定不要出错
解决方案九:
参考代码段,总有你想要的
https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c
时间: 2024-08-04 12:37:05