编写一个函数用于判断某一个整数的各位数字之和是否等于5

算法分析:(1)判断函数的函数头可定义为:intfac(intx),其中x形参用于接受要判断的整数。函数体内定义5个变量(其类型为整型)用于存放整数的每一位数字。先求出整... 算法分析:
(1)判断函数的函数头可定义为:int fac(int x),其中x形参用于接受要判断的整数。函数体内定义5个变量 (其类型为整型)用于存放整数的每一位数字。先求出整数x的每一位数字存放到相应变量中,再判断5个变量的累加和是否等于5,如果满足条件返回1,否则返回0。
(2)主函数中定义2个变量i、n,其中i作为循环计数变量,n作为每次输出时的计数(初值为0)。
(3)求100~10000之间有多少个整数它们的各位数字之和等于5。可用下列程序片段。
for (i=100;i<=10000;i++)
if (fac(i))
{ printf("%6d",i);
n++;
if (n%5==0)printf("\n");
}
展开
 我来答
806000287
2011-05-30 · TA获得超过132个赞
知道答主
回答量:110
采纳率:0%
帮助的人:60.5万
展开全部
#include<stdio.h>
int fac(int x)
{
int a=s=0;
while(x!=0){
a=x%10;(x取余得到x各位数上的值)
x=x/10;
s=s+a;(位数上的值相加,即s是与5对比的数)
}
if(s==5)
return 1;
else return 0;
}

void main()
{
int i,n=0;
for (i=100;i<=10000;i++)
if (fac(i))
{
printf("%6d",i);
n++;
if (n%5==0)printf("\n");
}
}
这是以我的思路写的,不知道对不对,我没有C运行坏境,楼主可以运行试试,不行还可以再问的
oolgloo
2011-05-30 · TA获得超过2637个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:761万
展开全部
分析:利用sprintf函数将整数转为字符串数组,通过字符串数组遍历计算各位数之和

程序:
#include <stdio.h>

#define MAX_LEN 10 //最大10位整数

int fac(int n)
{
char s[MAX_LEN];
int i, len, sum = 0;

len = sprintf(s, "%d", n); //转字符串
for (i=0; i<len; i++)
{
sum+=s[i]-'0'; //各位数之和
}

return (sum==5);
}

void main()
{
int i,n;
for (i=100;i<=10000;i++)
if (fac(i))
{
printf("%6d",i);
n++;
if (n%5==0)printf("\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
夜雨时火
2011-05-30
知道答主
回答量:30
采纳率:0%
帮助的人:0
展开全部
例如5264
int a,b,c,d,;
a=5264/1000;b=(5264-a*1000)/100;c=(5264-a*1000-b*100)/10;d=(5264-a*1000-b*100-c*10)/1;
if (a+b+c+d=5)
printf("\n"
要判断任一个整数有点复杂,我只是举个简单的例子,希望给LZ启示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式