C语言 打印1-100以内不含7的数字(多种方式实现。)
哪位大神帮我看看,多谢大家!
1、余数和十位数共同判断法
if((i%10|i/10)!=7)then printf
2、转成字符串判断
3、纯余数判断法
[ 本帖最后由 xzlxzlxzl 于 2015-3-24 15:14 编辑 ]
程序代码:# include <stdio.h>
# include <malloc.h> //将1~100间的数拆成数组储存,对比是否有7
# define AIM 7 //目标为7
int No_AIM(int n);
int main(void)
{
for(int i=1;i<=100;i++)
if(No_AIM(i))
printf("%d ",i);
return 0;
}
int No_AIM(int n)
{
int n1=n;
int n2=n;
int count=0,sign=1;
int *p;
do{
count++;
//计算数的位数,为后面分配空间准备
}while(n1/=10);
p=(int *)malloc(sizeof(int)*count); //分配数组空间
for(int i=0;i<count;i++)
{
*(p+i)=n2%10; //为数组赋值
n2/=10;
}
for(int i=0;i<count;i++)
if(*(p+i)==AIM) // 对比数组的每一项是否有7
sign=0;
free(p); //释放内存空间
return sign;
}

程序代码:#include <stdio.h>
bool isconum(int source,int num)
{
if(source==0) return false;
bool result=false;
while(source>0)
{
if(source%10==num)
{
result=true;
break;
}
source/=10;
}
return result;
}
int main()
{
int s;
for(s=1;s<=100;s++)
{
if(isconum(s,7)==false) printf("%d\n",s);
}
return 0;
}
