C语言 打印1-100以内不含7的数字(多种方式实现。)
哪位大神帮我看看,多谢大家!
2015-03-24 14:37
2015-03-24 14:54
2015-03-24 15:00
程序代码:# 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;
}

2015-03-24 15:06
程序代码:#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;
}

2015-03-24 15:08
2015-03-24 15:11
程序代码:#include <stdio.h>
#include <string.h>
int main(void) {
char data[100][4];
int i;
for(i = 0; i < 100; i++) {
sprintf(data[i], "%d", i + 1);
if(!strchr(data[i], '7'))
printf("%s ", data[i]);
}
return 0;
}

2015-03-24 15:21
2015-03-24 19:47
2015-03-25 21:09

2015-03-25 21:24