早教吧 育儿知识 作业答案 考试题库 百科 知识分享

编程要求:请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C42.C文件和C42.EXE文件)编写程序,通过以下步骤验证一个正整数是否符合特定的规则:(1)输入一个4位的

题目详情
编程要求: 请按题中的功能要求,编写程序并能得到正确的结果。将结果(包括C_4_2.C文件和C_4_2.EXE文件)
编写程序,通过以下步骤验证一个正整数是否符合特定的规则:
(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
#include
void main()
{
int n, a, p, s=1;
printf("输入:");
scanf("%d", &n);
a = n % 100;
p = n / 100;

printf("输出:%d: 1", a);
int i;
for (i = 2; i <= a/2; i++)
{
if (a % i == 0)
{
s += i;
printf("+%d", i);
}
}
printf("=%d,", s);
if (s + p == 99)
printf("Accept\n");
else
printf("Refuse\n");
char buf[3];
FILE * fp;
fp = fopen("C42.TXT", "w");
sprintf(buf,"%d",a);
fwrite(&buf, 1, sizeof(buf), fp);
sprintf(buf,"%d",p);
fwrite(&buf, 1, sizeof(buf), fp);
sprintf(buf,"%d",s);
fwrite(&buf, 1, sizeof(buf), fp);
fclose(fp);
}
看了 编程要求:请按题中的功能要求...的网友还看了以下: