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; }