| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1333 人关注过本帖
标题:一个小白问题!
只看楼主 加入收藏
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
收藏
得分:0 
610527199002152713
610527199007252713
610527199008052713
610527199010152713
610527199103252713
610527199104052713
610527199109152713
610527199111252713
610527199112052713
610527199205152713
610527199301152713
610527199306252713
610527199307052713
610527199402252713
610527199403052713
610527199408152713
610527199410252713
610527199411052713
610527199504152713
610527199509252713
610527199512152713
610527199605252713
610527199606052713
610527199701252713
610527199702052713
610527199707152713
610527199710052713
610527199803152713
610527199808252713
610527199809052713
610527199811152713
610527199904252713
610527199905052713
610527199912252713
2011-08-14 07:14
wushaojun321
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2011-8-6
收藏
得分:0 
以下是引用laoyang103在2011-8-13 15:14:09的发言:

#include
#include
#include
 
 
int main()
{
    for(int i = 0;i<10000;i++)
    {
        if(i>999)
            printf("610527199%d52713\n",i);
        else if(i>99 && i<1000)
            printf("6105271990%d52713\n",i);
        else if(i>9 && i<100)
            printf("61052719900%d52713\n",i);
        else
            printf("610527199000%d52713\n",i);
    }
    return 0;
}
我修改了下!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>


int main()
{
    for(int i = 0;i<=9;i++)
    for(int j = 1;j<=12;j=j+1)
    for(int k = 0;k<=2;k++)
    {
        if(j>0 && j<10)
            printf("610527199%d0%d%d52713\n",i,j,k);
        else
            printf("610527199%d%d%d52713\n",i,j,k);
    }
    return 0;
}

 

但还是有点问题 就是生日为1990年的身份证数不出
  谁解决下
2011-08-14 08:09
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 22楼 wushaojun321
我晕!
你以为这个题只是几个for循环那么简单?
2011-08-14 08:15
wushaojun321
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2011-8-6
收藏
得分:0 
回复 23楼 hjywyj
不好意思! 小弟小白一个 现在学C 3星期   不对之处还请指出  谢谢!
               但是我这么做明显输出的比前面几位弄的准确!
                              不信你试试吧!
                                   现在的问题是1990年的身份证号输不出!
2011-08-14 08:35
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 24楼 wushaojun321
610527199002152713
610527199007252713
610527199008052713
610527199010152713
2011-08-14 08:36
wushaojun321
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2011-8-6
收藏
得分:0 
回复 25楼 hjywyj
汗~!   大哥怎么不懂我的意思!
              我是学习的,这个结果我也知道的,现在的问题就是前面的代码问题到底出在哪?
                     我是通过这个代码来学习的!
                        
2011-08-14 08:41
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 26楼 wushaojun321
for(int i = 0;i<=9;i++)
    for(int j = 1;j<=12;j=j+1)
    for(int k = 0;k<=2;k++)
    {
        if(j>0 && j<10)
            printf("610527199%d0%d%d52713\n",i,j,k);
        else
            printf("610527199%d%d%d52713\n",i,j,k);
    }
可以输出1990年的,只不过数据量太大,前面的都覆盖了,你没看见是正常的。
但是输出的身份证号大多数不是正确的。
2011-08-14 08:45
wushaojun321
Rank: 2
等 级:论坛游民
帖 子:24
专家分:17
注 册:2011-8-6
收藏
得分:0 
  哎~   这是难啊~!   就这样吧!
2011-08-14 08:52
knight900706
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2011-8-10
收藏
得分:0 
#include <stdio.h>
int main(void)
{
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int b[12]={01,02,03,04,05,06,07,8,9,10,11,12};
    int c[3]={0,1,2};
    int i,j,k,n=0;
    for(i=0;i<=8;i++)
        for(j=0;j<=11;j++)
            for(k=0;k<=2;k++)
            {
                printf("610527199%d%d%d52713   ",a[i],b[j],c[k]);
                n++;
                if(n==3)
                {
                   printf("\n");
                   n=0;
                }
            }
    return 0;
}
我的代码是这样的,但是有一个问题是在b[]这个数组中不能使用08和09两个数,如果是这两个数那么编译的时候会出现说非法字符的情况,希望各位能够解答一下。
2011-08-14 10:36
神马都浮云
Rank: 2
等 级:论坛游民
帖 子:13
专家分:15
注 册:2011-7-11
收藏
得分:0 
程序代码:
#include "stdio.h"

void panduan(int *p);

void main()
{
    int a[18]={6,1,0,5,2,7,1,9,9,0,0,0,0,5,2,7,1,3};
    int i,j,k;
    for(i=0;i<=9;i++)
    {
        a[9]=i;
        for(j=1;j<=12;j++)
        {
            a[10]=j/10;
            a[11]=j%10;
            for(k=0;k<=2;k++)
            {
                a[12]=k;
                panduan(a);

            }
        }
    }
}
void panduan(int *p)
{
    int y,i;
    unsigned long sum,s=0;
    int w[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
    for(i=0;i<17;i++)
    {
        sum=(*p)*w[i];
        p++;
        s=s+sum;
    }
    y=s%11;
    if(y==9)
    {
        for(i=0;i<18;i++)
        {
            printf("%d",p[i-17]);
        }
        printf("\n");
    }
}
不知道这样对不对呢。。
2011-08-14 11:28
快速回复:一个小白问题!
数据加载中...
 
   



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

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