| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 606 人关注过本帖
标题:有点问题弄不明白,请高手指点
只看楼主 加入收藏
a929664
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-14
收藏
 问题点数:0 回复次数:7 
有点问题弄不明白,请高手指点
我想制作一个程序,产生一组序号,并把其中所有带4的序号全部去掉,但不知为什么总去不掉
源码如下,请高手指点指点,谢了
#include<stdio.h>
main()
{
      int ws;    //序号的位数
      int qs;    //序号的起始
      int js;    //序号的结束
      int n,m,i,j;            
      
      //输入参数
      
      printf("请输入序号的位(最少两位,最多四位):");
      scanf("%d",&ws);
      printf("请输入起始号码:");
      scanf("%d",&qs);
      printf("请输入结束号码:");
      scanf("%d",&js);
      
      //生成序号数组
      
      n=(js-qs)+1;
      m=qs;
      int xh[n];  //序号数组
      for(i=0;i<n;i++)
      {
                      xh[i]=m;
                      m++;
      }
      
      //输出序号
      
      FILE *fp;
      fp=fopen("序号.txt","w+");
      for(i=0;i<n;i++)
      {
                      m=xh[i];
                      int x=1;
                      int y;
                      y=m;
                      if(y=4)
                      x++;
                      y=m/4;
                      if(y=4)
                      x++;
                      y=m/100;
                      if(y=4)
                      x++;
                      y=m/1000;
                      if(y=4)
                      x++;
                      y=m/10%10;
                      if(y=4)
                      x++;
                      y=m/100%10;
                      if(y=4)
                      x++;
                      if(x=1)
                      {
                             int z;
                             if(m<10)z=1;
                             else if(m<100)z=2;
                             else if(m<1000)z=3;
                             else if(m<10000)z=4;
                             switch(z)
                             {
                                  case 3:fputs("0",fp);break;
                                  case 2:fputs("00",fp);break;
                                  case 1:fputs("000",fp);break;
                                  default:return 0;
                             }
                             fprintf(fp,"%d\n",m);
                      }
      }
      fclose(fp);
}
搜索更多相关主题的帖子: include 制作 
2008-09-14 11:06
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
输入产生的数字的位数,如果想写入文件,可以使用重定向。

比如产生3位不包含4的数字序列,在命令行下输入(假设编译以后程序叫test.exe):

test.exe >res.txt<回车>
2<回车>

数字就写入res.txt了。

程序代码:
#include <stdio.h>
#include <stdlib.h>

#define N 100

int main(void)
{
    int a[N] = {0}, i = 0, n;
    scanf("%d", &n);

    while (i < n)
    {
        for (i = n - 1 ; i >= 0 ; i--)
            putchar(a[i] + '0');
        putchar('\n');
        for (i = 0 ; ++a[i] == 4 ?
                ++a[i], 0 : a[i] >= 10 ;)
            a[i++] = 0;
    }

    return 0;
}



[[it] 本帖最后由 StarWing83 于 2008-9-14 14:25 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-14 14:22
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
程序好像有点问题吧?int xh[n]; 这样好像不能动态创建一个数组吧??
2008-09-15 20:54
God_WangY
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-9-6
收藏
得分:0 
int xh[n] 是可以的
这里不是动态建立,因为n已经有值了。使用前定义就可以
2008-09-15 22:36
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS你用的什么编译器?

目前只有GCC才有这种写法,而且这个是C99标准里面的。而且,这个的确是动态数组,叫做下标可变数组……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-15 23:19
shaoyuan
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2008-9-7
收藏
得分:0 
你那个条件语句里的条件是不是写错了啊?
2008-09-15 23:23
a380627112
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-9-16
收藏
得分:0 
让人
用葛链表就行了吧
2008-09-16 08:55
快速回复:有点问题弄不明白,请高手指点
数据加载中...
 
   



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

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