| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 642 人关注过本帖
标题:请教一个程序运行出错的问题,编译环境 visual stdio 运行平台 WIN7 32
只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:20 回复次数:6 
请教一个程序运行出错的问题,编译环境 visual stdio 运行平台 WIN7 32
问题描述:
 程序编译无语法错误,运行阶段弹出错误框
visual sdtio 调试出错描述:
Windows 已在 kill.exe 中触发一个断点。
其原因可能是堆被损坏,这说明 kill.exe 中或它所加载的任何 DLL 中有 Bug。
原因也可能是用户在 kill.exe 具有焦点时按下了 F12。
输出窗口可能提供了更多诊断信息。


代码如下
程序代码:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

int  str_to_num(char *str,int n);
void strs_to_nums(char *str,int *data,int n);
void nums_to_strs(int *num,char *string);
void function(int countA,int countB,int flag,int n,int i);



int arrary[5][4];
int *data;

int _tmain(int argc, _TCHAR* argv[])
{
    FILE *fpin,*fpout;
    char str[10], *datastring;
    int num1,num2,flag,n,counta,countb,i;

    fpin=fopen("c:\\ponit.in","r");
    fpout=fopen("c:\\ponit.out","w");
    if(fpin==NULL||fpout==NULL){
        printf("打开文件失败\n");
        exit(0);
    }
    
        fgets(str,5,fpin);
        num1=str_to_num(str,5);
    while(num1-->0){
        fgets(str,10,fpin);
        num2=str_to_num(str,10);

        datastring=(char*)malloc(sizeof(char)*2*num2+2);    //堆操作函数用的是malloc 释放堆的函数为free
        data=(int*)malloc(sizeof(int)*num2);

        fgets(datastring,2*num2+2,fpin);
        strs_to_nums(datastring,data,num2);
        i=0;
        while(num2>=0){
            flag=0;counta=0;countb=0;
            function(counta,countb,flag,num2,i);
            if(arrary[i][4]==1){
                num2=arrary[i][3];
                i++;
            }
            else{
                fputs("unkonw",fpout);
                break;
            }
        }
        free(datastring);
        free(data);
        datastring=(char*)malloc(sizeof(char)*8);
        for(i=5;i>=0;i--){
            if(arrary[i][4]==1){
                nums_to_strs(arrary[i],datastring);
                fputs(datastring,fpout);
            }
        }
        free(datastring);
    }
    free(fpin);
    free(fpout);
    return 0;
}


int  str_to_num(char *str,int n)
{
    int i=0,num=0;
    for(;i<n;i++){
        if(str[i]=='\n'||str[i]=='\0')
            break;
        num=num*10+str[i]-30;
    }
    return num;
}

void strs_to_nums(char *str,int *data,int n)
{
    int i=0;
    for(;i<n;i++){
        if(str[2*i]=='x'){
            data[i]=10;
            continue;
        }
        data[i]=str[2*i]-30;
    }
}

void nums_to_strs(int *num,char *string)
{
    int i,j=0,k=0; char p[8];
    while(k<2){
        itoa(num[k],p,10);
        for(i=0;i<8;i++){
            if(p[i]=='\0')
                break;
            string[j]=p[i];
            j++;
        }
        if(k==0)
            string[j]=':';
    }
    string[j]='\0';
}

void function(int countA,int countB,int flag,int n,int i)
{
    int j;
    for(j=n-1;j>=0;j--){
          if ((countA==21&&countB<=19) || (countA>21 && (countA-countB==2))){
                       arrary[i][0]=countA;
                       arrary[i][1]=countB;                   
                       arrary[i][3]=j+2;      
                       arrary[i][4]+=1;                       
                       return;
          }
         if ((countA=21&&countA-countB<-1) || (countA>21 &&((countA-countB<-1)||(countA-countB>2))))
                       return;

         if(flag==0){                             
            countA+=data[j];
            flag=1;
        }
         if(flag==1){                                 
            countB+=data[j];
            flag=0;
        }
         if(j>0&&data[j-1]==10){                      
                function(countA,countB,flag,j+1,i);     
                if(flag=0) flag=1;                                
                if(flag=1) flag=0;                  
                function(countA,countB,flag,j+1,i);
         }
    }
}


[ 本帖最后由 zhu224039 于 2014-6-28 01:08 编辑 ]
搜索更多相关主题的帖子: 信息 断点 visual Windows 
2014-06-28 00:51
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
这么一堆代码你想做什么?一点说明都没有。

总有那身价贱的人给作业贴回复完整的代码
2014-06-28 01:08
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
这段代码谁教你写的?你看看有啥问题?fpin=fopen("c:\\ponit.in","r");
fpout=fopen("c:\\ponit.out","w");
if(fpin==NULL||fpout==NULL){
printf("打开文件失败\n");
exit(0);
}

总有那身价贱的人给作业贴回复完整的代码
2014-06-28 01:09
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 2 楼 embed_xuel
就是蝈蝈计分的 那道题目的 C代码实现

我要成为嘿嘿的黑客,替天行道
2014-06-28 01:10
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
我上哪知道蝈蝈计分是啥东东?

总有那身价贱的人给作业贴回复完整的代码
2014-06-28 01:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
以下是引用embed_xuel在2014-6-28 01:12:57的发言:

我上哪知道蝈蝈计分是啥东东?

这个咯:https://bbs.bccn.net/thread-433398-1-1.html

授人以渔,不授人以鱼。
2014-06-28 10:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
查到结果没有?不用调试器会查吗?

授人以渔,不授人以鱼。
2014-06-28 10:10
快速回复:请教一个程序运行出错的问题,编译环境 visual stdio 运行平台 WIN7 3 ...
数据加载中...
 
   



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

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