| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 673 人关注过本帖
标题:c语言程序运行出错,求大神帮忙
取消只看楼主 加入收藏
_alex
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-7-30
结帖率:80%
收藏
已结贴  问题点数:5 回复次数:4 
c语言程序运行出错,求大神帮忙
#include<stdio.h>
#include<string.h>
int ids(char *m)/*identify size*/
{
    int n;  
    if(strcmp(m,"1/2")==0||strcmp(m,"0.5")==0)   
        n=0;  
    if(strcmp(m,"3/4")==0||strcmp(m,"0.75")==0)   
        n=1;  
    if(strcmp(m,"1")==0)   
        n=2;  
    if(strcmp(m,"1-1/2")==0||strcmp(m,"1.5")==0)   
        n=3;
    if(strcmp(m,"2")==0)   
        n=4;  
    if(strcmp(m,"2-1/2")==0||strcmp(m,"2.5")==0)   
        n=5;  
    if(strcmp(m,"3")==0)   
        n=6;  
    if(strcmp(m,"3-1/2")==0||strcmp(m,"3.5")==0)   
        n=7;  
    if(strcmp(m,"4")==0)   
        n=8;
    if(strcmp(m,"4-1/2")==0)   
        n=9;  
    if(strcmp(m,"5")==0)   
        n=10;
    if(strcmp(m,"6")==0)   
        n=11;
    if(strcmp(m,"7")==0)
        n=12;  
    if(strcmp(m,"8")==0)   
        n=13;
    if(strcmp(m,"9")==0)   
        n=14;
    if(strcmp(m,"10")==0)
        n=15;  
    return n;
}  
int idc(char *p)/*identify class*/
{
    int q;  
    if(strcmp(p,"1")==0)   
        q=0;
    if(strcmp(p,"2")==0)
        q=1;  
    if(strcmp(p,"3")==0)
        q=2;
    if(strcmp(p,"4")==0)   
        q=3;
    if(strcmp(p,"5")==0)   
        q=4;
    if(strcmp(p,"6")==0)   
        q=5;
    return q;
}
void main()
{
    int i,j;  int cou=0;//计算有多少行数据要处理  
    char a[100][5],b[100][5],c[100][5];  
    int g,h,k,l,m,x,y;
    int leap1,leap2,leap3,leap4;  
    char (*array1)[5];  
    char (*array2)[5];  
    char type[100][20]={0};  
    FILE *fp1;/*input*/
    fp1=fopen("in.txt","r");  
    if(fp1==NULL)
    {   
        printf("file open error!\n");   
        return ;//文件不存在就退出系统  
    }  
    for(i=0;i<100 ;i++,cou++)//cou在这里计算得出  
    {    if(EOF==fscanf(fp1,"%s\n",type[i]))//如果读到空行就退出循环   
         break;   //
         printf("%s\n",type[i]);
    }  
    fclose(fp1);

leap1=leap2=leap3=leap4=1;
for(i=0;i<cou;i++)//resolve  
{   
    g=h=k=l=m=j=0;   
    while(leap1&&j<20)      
    {        
        if(type[i][j]<'A'||type[i][j]>'Z')         
        {            
            a[i][g]=type[i][j];j++;g++;         
        }      
        else        
        {           
            j++;leap1=0;         
        }     
    }   
    while(leap2&&j<20)      
    {        
        if(type[i][j]>='A'&&type[i][j]<='Z')         
        {            
            b[i][h]=type[i][j];j++;h++;         
        }        
        else         
        {            
            j++;leap2=0;         
        }   
    }   
    while(leap3&&j<20)     
    {      
        if(type[i][j]>='0'&&type[i][j]<='9')         
        {           
            c[i][k]=type[i][j];j++;k++;        
        }      
        else         
        {           
            j++;leap3=0;         
        }   
    }   
    while(leap4&&j<20)   
    {      
        if(type[i][j]>='A'&&type[i][j]<='Z')        
        {           
            b[i][h]=type[i][j];j++;h++;        
        }      
        else         
        {         
            j=j+2;leap4=0;        
        }
    }   
    while(type[i][j]>'0'&&type[i][j]<'9'||type[i][j]>='A'&&type[i][j]<='Z')//distinguish'\'   
    {      
        b[i][h]=type[i][j];
        j++;
        h++;  
    }
  *array1=a[100][5];   
  *array2=c[100][5];   
  x=ids(array1);  
  y=idc(array2);   
  printf("%d\n%d\n",x,y);   
}
}
目的是为了一串字符分解开来,如1-1/2X3Y,MN12这种类型,首先是一个整数或分数,小数,然后第二是1-3个字母,然后第三是一个整数,第四是字母,第五是逗号,第六逗号之后的数不确定。程序目的是把逗号之前的字母和逗号后的所有内容分到同一个二维数组中,把字符串中两个数字分别放到两个数组中。但是下面这程序可以读入数组,但是算法好像不能执行,运行结束后结果应该是x=3  y=2,能麻烦看下算法吗?是不是我二维数组的指针用错了?
搜索更多相关主题的帖子: c语言程序 identify include 
2013-08-18 20:05
_alex
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-7-30
收藏
得分:0 
中间指针是一开始是定义的   char *array1;
                           char *array2;刚试了下忘改回来了  
2013-08-18 20:07
_alex
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-7-30
收藏
得分:0 
新手求大神指导下啊
2013-08-19 11:55
_alex
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-7-30
收藏
得分:0 
in.rar (448 Bytes)
结果是: x=6,y=0 BSRWCB
                      x=8,y=0 BRWCB
                      x=0,y=2 BRWCB
                      ......
2013-08-19 14:50
_alex
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2013-7-30
收藏
得分:0 
先膜拜下,容我好好学学
2013-08-19 18:00
快速回复:c语言程序运行出错,求大神帮忙
数据加载中...
 
   



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

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