求大神帮忙呀呀呀,急需急需,谢谢喽

[复制链接]
查看11 | 回复3 | 2021-1-27 07:10:58 | 显示全部楼层 |阅读模式
功能描述
读取来自数据文件的正整数a和b,计算并输出闭区间[a,b]内所有非素数,以及它们的和。
输入
读取可执行文件同目录下的data.in文件获得输入参数a和b。该文件为文本文件,a和b之间间隔一个空格,且正常输入数据应为一行.
标准输出
若计算成功,则将结果发送到标准输出。输出分为两行,第一行输出所有非素数,每个数之间间隔一个空格;第二行输出所有非素数的和.输出结果后必须输出换行以表示结束。
错误输出
错误提示只能输出错误输出,可自行设计文本内容。错误提示的实现是可选的。
返回值
程序返回一个整数,其意义如下表所示:
返回值含义
0计算成功,结果已经发送到标准输出
1无法打开data.in文件
2data.in文件中未包含有效的参数
3参数超出了限定范围
参考示例
输入:
3845
输出:
383940424445
248
这个程序怎么写????谢谢大神帮忙·····
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:10:58 | 显示全部楼层
1.读文件信息。获取a和b
2.判断素数
3.计算和
4.输出数据到文件
1,3用FILE来读写

回复

使用道具 举报

千问 | 2021-1-27 07:10:58 | 显示全部楼层

//希望能符合你的要求,这只是个大概的轮廓代码,还有很多地方需要细化,这就留给楼主去酝酿咯
#include
#include
#include
#include
#include
intmain()
{
intiLeftNum=0;
intiRightNum=0;
intiIdx=0;
inti_arr[100]={0};
inti=0,j=0;
intiPrimeSum=0;

//读文件
FILE*pF=NULL;
pF=fopen("D:\\data.in","r");
if(pF==NULL)
{
printf("error1");
return0;
}
charcContent[20+1]={0};
while(fgets(cContent,20,pF)!=NULL)
{
iLeftNum=atoi(strtok(cContent,""));
iRightNum=atoi(strtok(NULL,""));
}
//对读取的数字进行判断,还有更多的判断留给楼主...
if(iRightNum
回复

使用道具 举报

千问 | 2021-1-27 07:10:58 | 显示全部楼层
抱歉抱歉,我上面的代码忽略了个大问题:
应该在结果打印前,第60行加上fclose(pF);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行