| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1492 人关注过本帖
标题:程序调节中的诡异问题
只看楼主 加入收藏
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
结帖率:93.94%
收藏
已结贴  问题点数:20 回复次数:8 
程序调节中的诡异问题
  以下是我编写的程序,程序问题是:
  当第4行即#define N 中的N设为121200时程序可以运行,但当N设为1212等非121200这个数时程序就无法运行。
  请问各位大侠这是什么原因,谢谢!!
  调用文件中存放的是介于0-121200之间的随机数,且文件至少4G大小。
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define N 121200     //   N设为121200,程序可运行;当N不是121200时,程序就无法运行
FILE *str,*date2;

void main()
{
 unsigned i,j,k,sum=0,a=0;
 unsigned val;   //
 unsigned H=242400;    //
 unsigned char zifu[N]={0};   //
 date2=fopen("E:\\随机数件夹\\suijishu-121200.txt","rt");    // 文件中是介于0-121200之间的随机数,文件大小至少4G   
 str=fopen("E:\\fenbu.txt","wt");

 for(j=1;j<=H;j++)      //H
 {
       fscanf(date2,"%u\n",&val);  //  
      zifu[val]++;      
      printf("%d\n",j);
 }
   for(i=0;i<N;i++)    //
   {
       if(zifu[i]!=0)
       {
       fprintf(str,"%u\t%u\n",i,zifu[i]);   //
       sum++;     //
       }

  }
   printf("%d\n",sum);
搜索更多相关主题的帖子: include 
2016-09-03 11:28
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:7 
小了不行,设大点应该可以吧?
2016-09-03 11:38
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 2楼 ehszt
    您好!
    小了、大了均不行!
    只有121200可以!
   
2016-09-03 12:49
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
zifu[val]++;  这个不对,字符类型的数能加吗?
unsigned char zifu[N]={0};
改成unsigned int zifu[N]={0};
2016-09-03 13:02
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 4楼 ehszt
  您好!
  是可以加的!
  按您说的做了,也是通不过!
  麻烦各位了!!
2016-09-04 11:39
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:7 
zifu[val]++; 这句对不对不说,但是可以这样写。说到底,字符在电脑里也是按整型存放的。
至于楼主说的改变N的值,程序就不能用,没有碰到过。搞不懂。
2016-09-04 13:00
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
    请各位大侠多指教!
    谢谢!!
2016-09-04 18:18
西瓜shine
Rank: 2
等 级:论坛游民
帖 子:15
专家分:79
注 册:2016-7-22
收藏
得分:7 
你读取的时候是以 H=242400为限制的。所以对应的char字符是121200.
你可以改成H=N*2;
2016-09-04 19:40
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:0 
回复 8楼 西瓜shine
  您好!
  程序调试未通过!
  请指教!
2016-09-05 09:25
快速回复:程序调节中的诡异问题
数据加载中...
 
   



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

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