輸入一個形式如"運算元 運算子 運算元"的運算式,對2個整數進行乘、整除和求余(%)運算。
輸入格式:
在一行中輸入形式如"運算元 運算子 運算元"的運算式。
輸出格式:
在一行中輸出運算式及計算結果。
輸入樣例1:
在這里給出一組輸入。例如:
21 * 8
輸出樣例1:
在這里給出相應的輸出。例如:
21*8=168
輸入樣例2:
在這里給出一組輸入。例如:
21 ! 8
輸出樣例1:
在這里給出相應的輸出。例如:
Invalid operator
uj5u.com熱心網友回復:
不需要那么多的限制, 只有能求結果出來的都可以, 求不出來的顯示實際的錯誤資訊:IF OBJECT_ID('Proc_GetExpressionResult') IS NOT NULL
DROP PROC Proc_GetExpressionResult
GO
-- =============================================
-- Author: yenange
-- Create date: 2019-12-10
-- Description: 輸入運算式,求結果
-- =============================================
CREATE PROCEDURE Proc_GetExpressionResult
@expression NVARCHAR(MAX)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sql NVARCHAR(MAX)
SET @sql='select '+@expression
BEGIN TRY
EXEC (@sql);
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage
END CATCH
END
GO
EXEC Proc_GetExpressionResult '21 * 8'
/*
168
*/
EXEC Proc_GetExpressionResult '45 / 3'
/*
15
*/
EXEC Proc_GetExpressionResult '21 ! 8'
/*
“!”附近有語法錯誤。
*/
uj5u.com熱心網友回復:
我咋還看不懂uj5u.com熱心網友回復:
把字串弄到動態生成的sql里,然后執行,declare @sql nvarchar(max)
set @sql = 'select 21*8'
select @sql // 輸出 select 21*8
exec(@sql) // 執行@sql 所定義的命令,輸出 168
uj5u.com熱心網友回復:
將運算式傳入到存盤程序的引數,
存盤程序用動態S Q L查詢這個運算式的結果
沒有什么難度的
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/91966.html
標籤:疑難問題
上一篇:安裝sql server 2008 r2 程序中閃退
下一篇:不同的編程語言怎么合并成一個程式
