5.cpp

来自「编译原理的上机要求」· C++ 代码 · 共 65 行

CPP
65
字号
//判断输入串中0和1的个数是否都为偶数
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define BASELEN 10
#define INCRENTMENT 10

void main()
{
	char *p;
	FILE *fp;
 	unsigned int Num[2]={0,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;
	while(*(p+i)!='\n')
	{
		if (*(p+i)=='0' || *(p+i)=='1')
			++Num[*(p+i)-'0'];
		else
		{
			printf ("ERROR.\n");
			fclose(fp);
			free(p);
			return;
                }
		i++;
	}
	if (i==0)
		printf ("ERROR.\n");
	else
		if (Num[0]%2==0 && Num[1]%2==0)
			printf ("TRUE.\n");
		else
			printf ("FALSE.\n");
	fclose(fp);
	free(p);
}

⌨️ 快捷键说明

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