编写一个函数用于判断某一个整数的各位数字之和是否等于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");
} 展开
(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");
} 展开
3个回答
展开全部
#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运行坏境,楼主可以运行试试,不行还可以再问的
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运行坏境,楼主可以运行试试,不行还可以再问的
展开全部
分析:利用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");
}
}
程序:
#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");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如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启示
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)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询