zoukankan      html  css  js  c++  java
  • 算法原理与分析第二次作业

    #include<stdio.h>
    #include<string.h>
    #define MAX 100
    int n=0,i=0;
    char *keyshuru[6]={"begin","if","then","while","do","end"};
    
    void KEYword(char shuru[MAX])
    {
    	int k=0,key=0;
    	char token[MAX];
        while(shuru[i]!='#')
        {    
        while((shuru[i]>='a'&&shuru[i]<='z') || (shuru[i]>='A'&&shuru[i]<='Z'))
        {
            if((shuru[i]>='a'&&shuru[i]<='z') || (shuru[i]>='A'&&shuru[i]<='Z'))
            {
                  token[n]=shuru[i];
                n++;
                token[n]='';
                i++;            
            }
    
        for(k=0;k<6;k++)
        {
            key=0;
            if(strcmp(keyshuru[k],token)==0)
            {
                printf("%s   %d
    ",keyshuru[k],k+1);
                key=1;
                break;
            }
        }    }
        if(key==0)
        {
                printf("%s   10
    ",token);
        }
        key=1;
        i=i+1;
        n=0;
        }
    }
    void character(char shuru[MAX])
    {
        int p=0,sign=0;
        for(p=0;p<MAX;p++)
        {
            switch(shuru[p])
            {
            case '+':
                printf("+    13
    ");
                break;
            case '-':
                printf("-    14
    ");
                break;
            case '*':
                printf("*    15
    ");
                break;
            case '/':
                printf("/    16
    ");
                break;
            case ':':
                if(shuru[p+1]=='=')
                {
                    printf(":=   18
    ");
                    p++;
                }
                else
                    printf(":    17
    ");
                break;
            case '<':
                if(shuru[p+1]=='=')
                {
                    printf("<=     21
    ");
                    sign=1;
                    p++;
                }
                else if(shuru[p+1]=='>')
                {
                    printf("<>     22
    ");
                    sign=1;
                    p++;
                }
                else if(sign==0)
                    printf("<    20
    ");
                break;
            case '>':
                if(shuru[p+1]=='=')
                {
                    printf(">=    24
    ");
                    p++;
                }
                else
                    printf(">    23
    ");
                break;
            case '=':
                printf("=    25
    ");
                break;
            case ';':
                printf(";    26
    ");
                break;
            case '(':
                printf("(    27
    ");
                break;
            case ')':
                printf(")    28
    ");
                break;
            case '#':
                printf("#    29
    ");
                break;
            }
        }
    }
    
    void number(char shuru[MAX])
    {
        int p=0,j=0,t=0,key=0;
        char num[MAX];
        while(shuru[p]!='#')
        {
            key=0;
        while(shuru[p]>='0' && shuru[p]<='9')
        {
            num[j]=shuru[p];
            p++;
            j++;
            key=1;
        }
        if(key==1)
        {
            for(t=0;t<j;t++)
            {
                printf("%c",num[t]);
            }
            printf("    11
    ");
            j=0;
        }
        p++;
        }
    
    }
    
    main()
    {
    	char a;
    	char shuru[MAX];
    
        int p=0,j=0,m=0;
    
        printf("请输入源程序,#键为结束标志:");
        do{
            scanf("%c",&a);
            shuru[p]=a;
            p++;
        }while(a!='#');
       KEYword(shuru);
        character(shuru);
        number(shuru);
    }



    
    

      

  • 相关阅读:
    php 数据库练习之租房子
    php数据访问之查询关键字
    Objective-C代码学习大纲(3)
    Objective-C代码学习大纲(2)
    Objective-C代码学习大纲(1)
    简介Objective-C语言
    为什么Objective-C很难
    Swift之 ? 和 !
    使用Mac App Store更新、下载软件时出现未知错误的解决方法
    如何激励用户为你的app评分?
  • 原文地址:https://www.cnblogs.com/liezhihua/p/4826869.html
Copyright © 2011-2022 走看看