| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:help me!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:10 回复次数:9 
help me!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//程序功能 识别 含有01的0和1的串   串只接受 0和1不能输入任何其他字符, 比如0101010101或者11111000000等等形式
//程序流程   1.输入0和1串  2.从串i位置取一个字符 3.判断字符是0,1 并返回0或者1  4。查询下一个状态值存放位置在数组中的那一行
//参数status  记录数组元素的行  参数 num_iput 确定数组的列   数组a[3][2]存放的是状态的转换
//  状态表         0     1
//            p0   P1    P0
//            p1   P0    P2
//            p2   P2    P2
     
int take_num_input(char c)   
{
    if(c=='0')
        return 0;
    if(c=='1')
        return 1;
}
char get_one_char(char *a,int i)
{
    return *(a+i);
}
int query_status(int j,int i,int (*a)[2])
{
    return a[j][i];   
}
int question_for_user()
{
    char c;
    do{
        printf("continue search y or n:  ");
        c=getchar();
        }while(c!='y'||c!='n');              
    if(c=='y')
        return 1;
    else
        return 0;
}
int main()
{
    char str[100];
    char c;
    int i=0,status=0,num_input,search_str_times=0;
    int a[3][2]={1,0,
                 0,2,
                 2,2};
    printf("please input the string:\n");
    gets(str);
      while((c=get_one_char(str,i))!='\0'){
            num_input=take_num_input(c);
          status=query_status(status,num_input,a);
             if(status==2){
                  search_str_times++;
                     if(question_for_user()){
                            status=0;
                     }
                     else
                         break;
             }            
          i++;
      }
     if(search_str_times!=0)
         printf("string we search for times is:%d \n the string in the str position is %d\n",search_str_times,i-2);
    else
        printf("this str is not our want!\n");
}



求助问题
int question_for_user()
{
    char c;
    do{
        printf("continue search y or n:  ");
        c=getchar();
        }while(c!='y'||c!='n');           //------------>这个循环并未按照我的想法   输入 y或者 n 就结束循环 求解释为什么
    if(c=='y')
        return 1;
    else
        return 0;
}
搜索更多相关主题的帖子: include status 元素 
2014-02-24 16:22
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:4 
int take_num_input(char c)   
{
    if(c=='0')
        return 0;
    if(c=='1')
        return 1;
}

这个,对于非0 和1 ,你返回什么?

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-02-24 16:25
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:6 
应该是 并的关系吧

DO IT YOURSELF !
2014-02-24 16:27
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 2楼 yuccn
说好的只接受0和1 两个字符 其他的字符不能输入

我要成为嘿嘿的黑客,替天行道
2014-02-24 16:27
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int take_num_input(char c)  
{
    if(c=='0')
        return 0;
    if(c=='1')
        return 1;
}
char get_one_char(char *a,int i)
{
    return *(a+i);
}
int query_status(int j,int i,int (*a)[2])
{
    return a[j][i];   
}
int question_for_user()
{
    char c;
    do{
        printf("we find,continue search y or n:  ");
        c=getchar();
        }while(c!='y'&&c!='n');
        fflush(stdin);
    if(c=='y')
        return 1;
    else
        return 0;
}
int main()
{
    char str[100];
    char c;
    int i=0,status=0,num_input,search_str_times=0;
    int a[3][2]={1,0,
                 0,2,
                 2,2};
    printf("please input the string:\n");
    gets(str);
      while((c=get_one_char(str,i))!='\0'){
            num_input=take_num_input(c);
          status=query_status(status,num_input,a);
             if(status==2){
                  search_str_times++;
                  printf("string we search for times is : %d\nin the str position is : %d\n",search_str_times,i-1);
                     if(question_for_user())
                    status=0;
                     else
                         break;
             }            
          i++;
      }
     if(search_str_times==0)
        printf("this str is not our want!\n");
}

我要成为嘿嘿的黑客,替天行道
2014-02-24 16:39
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
好了 我自己解决了

我要成为嘿嘿的黑客,替天行道
2014-02-24 16:39
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 3楼 wp231957
并就是或则
应该是与的关系 奖励你5分

我要成为嘿嘿的黑客,替天行道
2014-02-24 16:44
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
切,你连||和&& 都用错  

DO IT YOURSELF !
2014-02-24 17:04
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
收藏
得分:0 
回复 8楼 wp231957
哈哈
程序写的少

我要成为嘿嘿的黑客,替天行道
2014-02-24 17:16
w851777025
Rank: 7Rank: 7Rank: 7
来 自:新疆
等 级:黑侠
威 望:2
帖 子:135
专家分:584
注 册:2014-1-19
收藏
得分:0 
菜鸟路过
2014-02-24 17:21
快速回复:help me!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
数据加载中...
 
   



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

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