WA的有点奇怪,C语言,向大佬求助
查看原帖
WA的有点奇怪,C语言,向大佬求助
573601
Keine_wie_du楼主2022/2/5 19:57

提交会说除了第二个全WA,然后下载第一个点,本地运行是对的,但第一个点还是WA

向大佬求助

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
typedef struct node
{
	int num;
	struct node *prior;
	struct node *next;
}linknode,*linklist;
linklist head,rear,point;
void creatlist(linklist head,int n)
{
	point=(linklist)malloc(sizeof(linknode));
	point->num=n;
	rear->next=point;
	point->prior=rear;
	rear=point;
}
int main()
{
	int i=0,l;
	char tmp;
	char numchar[1005];
	int numint;
	int alpha,beta,gamma;
	head=(linklist)malloc(sizeof(linknode));
	rear=head;
	while(scanf("%c",&tmp)!=EOF)
	{	
		if(tmp>='0'&&tmp<='9')
		{
			numchar[i]=tmp;
			i++;
		}
		else if(tmp=='.')
		{
			numint=0;
			l=strlen(numchar);
			for(i=1;i<=l;i++)
				numint+=(numchar[i-1]-'0')*(int)(pow(10,l-i));
			for(i=1;i<=l;i++)
				numchar[i-1]='\0';
			i=0;
			//printf("%d\n",numint);
			creatlist(head,numint);
		}
		else if(tmp!='.'&&tmp!='@')
		{
			alpha=(rear->prior)->num;
			beta=rear->num;
			if(tmp=='+')
				gamma=alpha+beta;
			else if(tmp=='-')
				gamma=alpha-beta;
			else if(tmp=='*')
				gamma=alpha*beta;
			else if(tmp=='/')
				gamma=(int)(alpha/beta);
			((rear->prior)->prior)->next=rear;
			rear->prior=(rear->prior)->prior;
			rear->num=gamma;
			//printf("%d ",rear->num);
		}
		else if(tmp=='@')
			break;
	}
	printf("%d",rear->num);
	return 0;
}
2022/2/5 19:57
加载中...