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

📄 4.cpp

📁 编译原理的上机要求
💻 CPP
字号:
//判断a^mba^n m,n>=0
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define BASELEN 10
#define INCRENTMENT 10

void main()
{
	char *p;
	FILE *fp;
 //	long Num=0;
	int i=0;
	int CurLen=0;
	int MaxLen=BASELEN;
	clrscr();
	if (!(fp=fopen("c:\\2.txt","r")))
	{
		printf ("Open file error.\n");
		exit(0);
	}
	if (!(p=(char*)malloc(sizeof(char)*BASELEN)))
	{
		printf ("Malloc Error.\n");
	}
	while(1)
	{
		if (CurLen==MaxLen)
		{
			MaxLen=MaxLen+INCRENTMENT;
			if (!(p=(char *)realloc(p,sizeof(char)*MaxLen)))
			{
				printf ("Realloc error.\n");
			}
		}
		fscanf(fp,"%c",p+i);
		if (*(p+i)=='\n') break;
		CurLen++;i++;
	}
	i=0;
	if (*(p+i)=='a')
	{
		for(;*(p+i)=='a';i++);
		if (*(p+i)=='b')
		{
                	i++;
			if (*(p+i)=='a')
			{
				for(;*(p+i)=='a';i++);
				if(*(p+i)=='\n')
					printf ("TRUE.\n");
				else
					printf ("FALSE.\n");
				fclose(fp);
				free(p);
				return;
			}
			else
			{
				if(*(p+i)=='\n')
					printf ("TRUE.\n");
				else
					printf ("FALSE.\n");
				fclose(fp);
				free(p);
				return;
                        }

		}
		else
		{
			printf("FALSE.\n");
			fclose(fp);
			free(p);
			return;
		}
	}
	else
		if (*(p+i)=='b')
		{
                	i++;
			if (*(p+i)=='a')
			{
				for(;*(p+i)=='a';i++);
				if(*(p+i)=='\n')
					printf ("TRUE.\n");
				else
					printf ("FALSE.\n");
				fclose(fp);
				free(p);
				return;
			}
			else
			{
				if(*(p+i)=='\n')
					printf ("TRUE.\n");
				else
					printf ("FALSE.\n");
				fclose(fp);
				free(p);
				return;
                        }

		}
		else
		{
			printf("FALSE.\n");
			fclose(fp);
			free(p);
			return;
		}
}

⌨️ 快捷键说明

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