⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 读数.cpp

📁 无解压密码,这是一个编译原理的实验源码,已经编译成功能实现读无符号数了.
💻 CPP
字号:
#include <math.h>  
#include <stdio.h> 
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
int change(char v);
double result(int a,int b,int c,int d);
void main()
{ 
int w,p,i,j,e,d;
w=j=d=p=0;
e=1;
char str[15];
double cj2;
A: printf("请输入一个无符号数(以“;”结尾):");
gets(str);
i=0;
if(str[i]>='0'&&str[i]<='9')
{  
L: d=change(str[i]);
   w=w*10+d;  
   i++;
   if(str[i]>='0'&&str[i]<='9')
   goto L; 
   else
    if(str[i]=='.')
    { 
     i++;
     if(str[i]>='0'&&str[i]<='9')
     {    
M:     d=change(str[i]);
       w=w*10+d;
       j=j+1;
       i++;
       if(str[i]>='0'&&str[i]<='9')
        goto M;
       else
       { 
		 if(str[i]=='E')
Q:      { 
	     i++;
	   if(str[i]=='-')
	  {
	    e=-1;
J:          i++;
P:          if(str[i]>='0'&&str[i]<='9')
K:          { 
		d=change(str[i]);
	        p=p*10+d;
                i++;
		if(str[i]>='0'&&str[i]<='9')
                 goto K;
		else
H:        { 
			if(str[i]==';')
			{
		          i--;
				  printf("这个无符号数是实型的!\n");
I:                cj2=result(w,e,p,j);
				  cout<<"这个无符号数是:"<<cj2<<endl;
                  exit(0);
			}
			else
			{
				printf("您输入的不是无符号数或没有以“;”结尾,请重新输入!\n");
				goto A;
			}
		}
	    }	
	    else
	    {
	     printf("您输入的不是一个无符号数!\n");
	     exit(0);
	    }
	 }
	 else
	 { 
	    if(str[i]=='+')
	     goto J;
	    else
	     goto P;
	   }
        }
	else
	{
		if(str[i]==';')
	    goto H;
        else
		{
	      printf("您输入的不是一个无符号数!\n");
	      exit(0);
		}
	}
	   }
       }		
	else
	{
	 printf("您输入的不是一个无符号数!\n");
	 exit(0);
	 }
	}
	else
	{
	  if(str[i]=='E')
	   goto Q;
	  else
	   {
		if(str[i]==';')
		{
	    i--;
		printf("这个无符号数是整型的!\n");
	    goto I;
		}
		else
		{
			printf("您输入的不是一个无符号数!\n");
            exit(0);
		}
	    }
	}
   } 
 else
 {
  printf("您输入的不是一个无符号数!\n");
  exit(0);
 }
}
   
int change(char v)
{
switch(v)
{
case '0':return 0;break;
case '1':return 1;break;
case '2':return 2;break;
case '3':return 3;break;
case '4':return 4;break;
case '5':return 5;break;
case '6':return 6;break;
case '7':return 7;break;
case '8':return 8;break;
case '9':return 9;break;
}
}
double result(int a,int b,int c,int d)
{
int i;
double j;
i=b*c-d;
j=pow(10,i);
j=a*j;
return j;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -