C语言编程题求助

编写程序,通过以下步骤验证一个正整数是否符合特定的规则:
(1)输入一个4位的正整数n,将n分拆成a与p,a为n的低两位,p为n的高2位;
(2)计算a的所有因子之和,记为s(当1≤i<a时,如果a是i的倍数,则i是a的因子);
(3)如果s与p之和等于99,则输出"Accept",否则输出"Refuse";
(4)将a,p,s的值保存到文本文件"C42.TXT"中。
输出格式参见以下示例。
运行示例1:
输入:6758
输出:58: 1+2+29=32, Accept
运行后文件内容:58 67 32
说明:输入数的6758(对应n)分拆为58(对应a)和67(对应p),58的因子为1、2和29,其累加和为32(对应s),s和p的和等于99,输出"Accept"。a,p,s的值保存到文件中。

请大家帮忙编写一下我作为参考,十分感谢!

#include "stdio.h"


int main()
{
int n,a,p,i,s;
FILE *fp;

//输入一个4位的正整数n,将n分拆成a与p,a为n的低两位,p为n的高2位;
printf("输入一个4位数:");
scanf("%d",&n);
if(n<1000 && n>=10000)
{
printf("数据输入错误!"); 

else
{
a=n % 100;
p=n /100;
}
//计算a的所有因子之和,记为s(当1≤i<a时,如果a是i的倍数,则i是a的因子);
s=0;
for(i=1;i<a;i++)
{
if(a%i==0)
s+=i;
}
//如果s与p之和等于99,则输出"Accept",否则输出"Refuse";
if(s+p==99)
printf("Accept");
else
printf("Refuse");
//将a,p,s的值保存到文本文件"C42.TXT"中
if((fp=fopen("C42.TXT","w"))==NULL)
{
printf("创建文件失败!");
return 0;
}
fprintf(fp,"%d\t%d\t%d",a,p,s);
fclose(fp);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-18
第4问不能帮给你解决,我也初学 ,前三问没问题 需要不?本回答被提问者采纳
相似回答