亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

逆波蘭計算器的完整C代碼怎么寫

發布時間:2021-10-14 14:26:56 來源:億速云 閱讀:180 作者:柒染 欄目:編程語言

這篇文章給大家介紹逆波蘭計算器的完整C代碼怎么寫,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

/* 逆波蘭計算器 */

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

typedef double Elemtype;

typedef struct StackNode {
	Elemtype data;
	struct StackNode *next;
}StackNode, *pStackNode;

typedef struct LinkStack {
	pStackNode top;
	int count;
}LinkStack, *pLinkStack;

//鏈棧創建和初始化
pLinkStack InitStack ( void )
{
	pLinkStack s = (pLinkStack)malloc(sizeof(LinkStack));
	s -> top = NULL;
	s -> count = 0;
	return s;
}

//鏈棧是否為空
int StackEmpty( pLinkStack s )
{
	return (s -> top == NULL ? 1 : 0 );
}

//鏈棧入棧
void Push( pLinkStack s, Elemtype e )
{
	pStackNode p = (pStackNode)malloc(sizeof(StackNode));
	p -> data = e;
	
	if( s -> top != NULL )  
		p -> next = s -> top;
	s -> top = p;
	s -> count++;
}

//鏈棧出棧
Elemtype Pop( pLinkStack s )
{
	Elemtype temp;
	pStackNode p;
	if( StackEmpty(s) )
		exit(0);

	temp = s -> top -> data;
	p = s -> top;
	s->top = s->top->next;
	free(p);
	s->count--;
	return temp;
}

int main()
{
	char c;
	Elemtype temp1, temp2;
	char str[20];
	int i=0;
	pLinkStack s = InitStack();
	printf("請輸入表達式 :\n");
	
	scanf("%c", &c);
	while( c != '\n' ) {

		while( isdigit(c) || c=='.' ) {//過濾數字
			str[i++] = c;
			str[i] = '\0';
			if( i>=20 )
				printf("出錯: 輸入的數據過大!\n");
			scanf("%c", &c);
			if( c == ' ' ) {
				Push( s, atof(str));
				i = 0;
				break;
			}
		}

		switch( c ) {
		case '+':
			temp1 = Pop( s ) ;
			temp2 = Pop( s ) ;
			Push( s, temp2 + temp1 );
			break;
			
		case '-':
			temp1 = Pop( s ) ;
			temp2 = Pop( s ) ;
			Push( s, temp2 - temp1);
			break;

		case '*':
			temp1 = Pop( s ) ;
			temp2 = Pop( s ) ;
			Push( s, temp2 * temp1);
			break;

		case '/':
			temp1 = Pop( s ) ;
			temp2 = Pop( s ) ;
			Push( s, temp2 / temp1);
			break;
		default:
			break;
		}
		scanf("%c", &c);
	}

	printf("結果為: %f\n", Pop(s));

	return 0;
}

關于逆波蘭計算器的完整C代碼怎么寫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨竹工卡县| 商洛市| 伊金霍洛旗| 嘉定区| 邵阳县| 克拉玛依市| 濮阳市| 高淳县| 紫云| 自贡市| 扎囊县| 恩施市| 秀山| 九台市| 信阳市| 阜康市| 平乡县| 慈溪市| 宣城市| 罗山县| 扬州市| 钟祥市| 获嘉县| 阆中市| 资兴市| 连城县| 江陵县| 吉安县| 星座| 马尔康县| 宜章县| 吉水县| 华坪县| 嘉荫县| 棋牌| 古丈县| 景泰县| 韩城市| 东宁县| 桑植县| 威信县|