| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4603 人关注过本帖
标题:C语言 打印1-100以内不含7的数字(多种方式实现。)
只看楼主 加入收藏
zhuyu99
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-6
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:13 
C语言 打印1-100以内不含7的数字(多种方式实现。)
哪位大神帮我看看,多谢大家!
搜索更多相关主题的帖子: C语言 
2015-03-24 14:37
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:3 
1、余数和十位数共同判断法
if((i%10|i/10)!=7)then printf
2、转成字符串判断
3、纯余数判断法

[ 本帖最后由 xzlxzlxzl 于 2015-3-24 15:14 编辑 ]
2015-03-24 14:54
zhuyu99
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-3-6
收藏
得分:0 
回复 2楼 xzlxzlxzl
谢谢,我主要想问下,转换成字符串怎样去判断呢,能不能简单给我示意一下,多谢了
2015-03-24 15:00
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:3 
程序代码:
# 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
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
程序代码:
#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;
}

DO IT YOURSELF !
2015-03-24 15:08
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
恩 我做复杂了

你醒了?快起来敲代码!!
2015-03-24 15:11
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:3 
回复 3楼 zhuyu99
程序代码:
#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;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-24 15:21
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
你可以找到所有含7的数,然后把这些数去掉就是了嘛

一片落叶掉进了回忆的流年。
2015-03-24 19:47
xuexifans
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-3-25
收藏
得分:0 
#include <stdio.h>


int main()
{
    int s,a;
   

    for(s=1;s<=30;s++)
    {
        a=s%10;
        if(a!=7) printf("%d\n",s);
    }
    return 0;
}
2015-03-25 21:09
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 9楼 xuexifans
9楼的代码是有漏洞的
假如要校验的值s范围超过70,700,7000……

结果就有问题了

Only the Code Tells the Truth             K.I.S.S
2015-03-25 21:24
快速回复:C语言 打印1-100以内不含7的数字(多种方式实现。)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013676 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved