作业帮 > 综合 > 作业

编写C语言,要求输出所有小于等于已正整数且满足条件X的数之和

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/15 20:00:52
编写C语言,要求输出所有小于等于已正整数且满足条件X的数之和
条件X:这个数既不是7的倍数,各个位上的数也没有7.
编写C语言,要求输出所有小于等于已正整数且满足条件X的数之和
//程序其实不复杂,看起来多是因为我解释得较详细,所以不要觉得复杂.
#include
void fun1(int k) //定义此函数用于判断整数k的各个位是否含有数字7,规定满足返回1,不满足返回0
{
int t=k;
while(t)
{
if(t%10==7)return(0); //如果t除以10的余数是7,即个位上是7,那么不满足条件,返回0
t=t/10; //如果满足个位上不是7的条件,那么把t除以10,得到一个除去个位数字的一个新数,循环一下再判断,循环到第二次其实是在判断原数字的十位是否为7,再循环一次就是判断百位,以此类推直到最高位,当t不断除以10最后t=0结束循环
}
return(1);//如果上面的循环没有一次返回0,表示数字的每一位都不是7,那么满足条件,返回1
}
void fun2(int a) //定义此函数用于判断整数a是否满足条件X,规定满足返回1,不满足返回0
{
int b=a;
if(b/7==0) return(0); //如果b/7=0,表示b是7的倍数,那么不满足条件X,返回0
if(fun1(b)==0) return(0);//如果b不满足每一位都是数字7的条件,返回0
return(1);//程序若能执行到这里说明数字b完全满足了条件X,返回1
}
void main()
{
int i,n,sum=0;
scanf("%d",&n); // 请输入已知正整数n
for(i=1;i