| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 840 人关注过本帖
标题:请教高手指点,这个程序无误可是运行出错,哪里出问题了。
只看楼主 加入收藏
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:10 
请教高手指点,这个程序无误可是运行出错,哪里出问题了。
请教指点,如题,谢谢。
程序代码:
#include<stdio.h>
#include<windows.h>
#include<time.h>
int a[1];
int i,j,m,n,v,q;
    int t,h,g,w,e,r;
    int temp;
    int b[7]={8,9,9,0,5,4,3};
    int c[7]={2,1,5,1,8,6,2};
    int d[7]={9,3,1,7,1,7,5};
void readDat();
void writeDat();
void jsValue()
{time_t timep;   
    struct tm *p;   
    int year,mon,day;
    int k;
    time(&timep);    
    p = localtime(&timep); //取得当地时间    
    year = 1900+p->tm_year;    
    mon =  1+p->tm_mon;    
    day =  p->tm_mday;
    for(t=0;t<7;t++)
        {w=rand()%7;
            temp=b[t];
    b[t]=b[w];
    b[w]=temp;}
    for(h=0;h<7;h++)
        {e=rand()%7;
            temp=c[h];
    c[h]=c[e];
    c[e]=temp;}
    for(g=0;g<7;g++)
        {r=rand()%7;
            temp=d[g];
    d[g]=d[r];
    d[r]=temp;}

 i=(year-2001)/4+(year-2001)*365;

 if(mon=1) 
{j=0+day;
}

 if(mon=2) 
{j=31+day;
}
  if((mon=3)&&(year%4!=0)) 
{j=59+day;
}
   if((mon=4)&&(year%4!=0)) 
{j=90+day;
}
    if((mon=5)&&(year%4!=0)) 
{j=120+day;
}
     if((mon=6)&&(year%4!=0)) 
{j=151+day;
}
      if((mon=7)&&(year%4!=0)) 
{j=181+day;
}
       if((mon=8)&&(year%4!=0)) 
{j=212+day;
} 
       if((mon=9)&&(year%4!=0)) 
{j=243+day;
} 
       if((mon=10)&&(year%4!=0)) 
{j=273+day;
} 
       if((mon=11)&&(year%4!=0)) 
{j=304+day;
} 
       if((mon=12)&&(year%4!=0)) 
{j=334+day;
}
  if((mon=3)&&(year%4==0)) 
{j=60+day;
}
   if((mon=4)&&(year%4==0)) 
{j=91+day;
}
    if((mon=5)&&(year%4==0)) 
{j=121+day;
}
     if((mon=6)&&(year%4==0)) 
{j=152+day;
}
      if((mon=7)&&(year%4==0)) 
{j=182+day;
}
       if((mon=8)&&(year%4==0)) 
{j=213+day;
} 
       if((mon=9)&&(year%4==0)) 
{j=244+day;
} 
       if((mon=10)&&(year%4==0)) 
{j=274+day;
} 
       if((mon=11)&&(year%4==0)) 
{j=305+day;
} 
       if((mon=12)&&(year%4==0)) 
{j=335+day;
}
m=i+j;

if((m-a[0]>=7)&&p->tm_hour>19)
{int n,v,q;
a[0]=m;
for(n=0; n < 7; n++) printf("%d", b[n]);
for(v=0; v < 7; v++) printf("%d", c[v]);
for(q=0; q < 7; q++) printf("%d", d[q]);
Sleep(1800000);
return 0;}
else
    {Sleep(5000);
return 0;}
}
void main()
{
readDat();
jsValue();
writeDat();
}

void readDat()
{
FILE *fp;
int i;
fp=fopen( "in34.cdf","r");
for(i=0;i<1;i++) 
fscanf(fp,"%d,",&a[i]);
fclose(fp);
}

void writeDat()
{
FILE *fp;
fp=fopen("in34.cdf","w");
fprintf(fp,"%d",&a[0]);
fclose(fp);
}

这个程序代码大致是,给定了3个数组,并且打乱了里面的数据,有一个天数是从2001年开始到现在的时间,过了多少天,还有一个a[i]数组存放着一个天数,除了初始给定的外,是上次运行的时间(如果上次满足了条件),如果满足了条件即现在到2001年1月1日的之间的天数减去数组a[i](只有一个数值)大于等于7,则把现在的天改写到a[i]当中去,并且把那三个乱序数组输出,同时休眠30分钟后退出。如果不满足条件,休眠5秒后直接退出。
不知道有什么错误,之前忘了写说明了,请求大神指导,谢谢

[ 本帖最后由 axaxzzzzzz 于 2014-10-30 19:09 编辑 ]
搜索更多相关主题的帖子: color 
2014-10-30 02:14
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
请求高手,呼救高手,谢谢
2014-10-30 10:01
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你是认为所有的人看一眼你的代码就知道你想实现神马吗

DO IT YOURSELF !
2014-10-30 10:23
happy两棵树
Rank: 2
等 级:论坛游民
帖 子:28
专家分:62
注 册:2013-7-18
收藏
得分:1 
你详细说下,你的程序想实现什么功能啊,不然这么长的代码,还要猜你要做什么
2014-10-30 11:08
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
回复 3 楼 wp231957
这个程序代码大致是,给定了3个数组,并且打乱了里面的数据,有一个天数是从2001年开始到现在的时间,过了多少天,还有一个a[i]数组存放着一个天数,除了初始给定的外,是上次运行的时间(如果上次满足了条件),如果满足了条件即现在到2001年1月1日的之间的天数减去数组a[i](只有一个数值)大于等于7,则把现在的天改写到a[i]当中去,并且把那三个乱序数组输出,同时休眠30分钟后退出。如果不满足条件,休眠5秒后直接退出。
不知道有什么错误,之前忘了写说明了,请求大神指导,谢谢

[ 本帖最后由 axaxzzzzzz 于 2014-10-30 17:39 编辑 ]
2014-10-30 11:21
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
有没有会的大神,感恩不尽
2014-10-30 17:41
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
收藏
得分:8 
是=还是==,还是你没搞清楚两者之间的区别

2014-10-30 19:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
“程序无误”又何来的“运行错误”呢,有了任何错误都证明程序一定有问题。

授人以渔,不授人以鱼。
2014-10-30 19:23
axaxzzzzzz
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2013-5-8
收藏
得分:0 
回复 8 楼 TonyDeng
我的系统是用vs2010编的,不太怎么会看提示,运行的时候出现了终止的提示
2014-10-30 19:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:11 
运行的时候出现终止提示,是操作系统发现你的程序有非法操作,这种属于“运行时错误”,而程序已经编译成可执行文件,没有“编译错误”而已,这跟vs什么的无关,而是程序有逻辑错误,逻辑错误是编译器检查不出来的,编译器只能检查语法错误,以及对一些常见的可能存在的运行时错误给出经验性警告(偏偏后者经常被人忽略强行跳过)。也就是说,写程序,编译成功不等于程序没错,只有在绝大多数时间下运行均无错误表现时,才算是正确——正确是相对的,任何一个程序都不可能绝对无错。

你的代码很难看,我也不去看,但根据你说的被系统终止现象,按经验来说,通常是指针问题造成的,即非法访问内存、使用野指针等等,结合7楼所说的,应该是你某个地方把比较操作误为赋值(这正是C/C++语言经典的陷阱,学C系列的都应该知道),凡是出现这种现象,九成是这个方面造成的,朝这个方向检查就是了。至于如何隔离、逐级排查,应该是你们老师教的,我不在这里教了。


[ 本帖最后由 TonyDeng 于 2014-10-30 19:59 编辑 ]

授人以渔,不授人以鱼。
2014-10-30 19:57
快速回复:请教高手指点,这个程序无误可是运行出错,哪里出问题了。
数据加载中...
 
   



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

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