試編寫使用者自定義函式ntoc,將使用者給定的阿拉伯數字0 9轉換為對應的漢字零 九

時間 2021-07-01 01:21:25

1樓:匿名使用者

create procedure atoc

@changemoney money

asset nocount on

declare @string1 char(20)

declare @string2 char(30)

declare @string4 varchar(100)

declare @string3 varchar(100) –從原a值中取出的值

declare @i int –迴圈變數

declare @j int –a的值乘以100的字串長度

declare @ch1 varchar(100) –數字的漢語讀法

declare @ch2 varchar(100) –數字位的漢字讀法

declare @zero int –用來計算連續有幾個零

declare @returnvalue varchar(100)

select @returnvalue = 」

select @string1 = 『零壹貳叄肆伍陸柒捌玖』

select @string2 = 『萬仟佰拾億仟佰拾萬仟佰拾元角分』

select @string4 = cast(@changemoney*100 as int)

select @j=len(cast((@changemoney*100) as int))

select @string2=right(@string2,@j)

select @i = 1

while @i<= @j begin

select @string3 = substring(@string4,@i,1)

if @string3<>『0′ begin

select @ch1 = substring(@string1, cast(@string3 as int) + 1, 1)

select @ch2 = substring(@string2, @i, 1)

select @zero = 0 –表示本位不為零

endelse begin

if (@zero = 0) or (@i = @j – 9) or (@i = @j – 5) or (@i = @j – 1)

select @ch1 = 『零』

else

select @ch1 = 」

select @zero = @zero + 1 –表示本位為0

–如果轉換的數值需要擴大,那麼需改動以下表示式 i 的值。

select ch2 = 」

if @i = @j – 10 begin

select @ch2 = 『億』

select @zero = 0

endif @i = @j – 6 begin

select @ch2 = 『萬』

select @zero = 0

endif @i = @j – 2 begin

select @ch2 = 『元』

select @zero = 0

endif @i = @j

select @ch2 = 『整』

endselect @returnvalue = @returnvalue + @ch1 + @ch2

select @i = @i+1

end–最後將多餘的零去掉

if charindex(『仟仟』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『仟仟』, 『仟』)

if charindex(『佰佰』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『佰佰』, 『佰』)

if charindex(『零元』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零元』, 『元』)

if charindex(『零萬』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零萬』, 『萬』)

if charindex(『零億』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零億』, 『億』)

if charindex(『零整』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零整』, 『整』)

if charindex(『零佰』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零佰』, 『零』)

if charindex(『零仟』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『零仟』, 『零』)

if charindex(『元元』,@returnvalue) <> 0

select @returnvalue = replace(@returnvalue, 『元元』, 『元』)

select @returnvaluego

2樓:匿名使用者

定義一個漢字型檔陣列hzk=

然後利用給定的0-9做索引呼叫陣列中的漢字型檔

哪種物聯網程式語言最熱門

樂高機器人用的什麼程式語言?

3樓:匿名使用者

樂高機器人程式設計軟體叫lego mindstorms nxt、robolab。

robolab。它是一個簡單、直觀、易學的程式設計環境,也可適用於樂高程式設計。它基於圖形化語言的程式設計環境,適合各個年齡段的使用者使用,程式的編寫方式類似於做邏輯表達,不過是全部圖形化的。

在基於robolab程式設計環境進行程式編寫,需要清醒的頭腦,清晰的邏輯。程式編寫完畢後通過樂高(lego)紅外感測器傳送至機器人(rcx)的記憶體中。

robolab的出現原本旨在為相關產品做軟體支援,經過多年的發展,已經成為青少年進行機器人競賽的必備程式設計工具。現在最新版本robolab 2.9 能支援新一代樂高(lego) 機器人(nxt)。

robolab是 樂高(lego) 機器人(一種基於rcx核心執行的簡單機器人)的程式設計工具。它是樂高玩具公司於2023年8月推出的廣受歡迎的新一代玩具機器人系統,該系統包括一個由ni開發、且基於labview平臺的全新推放式圖形化程式設計環境,是目前nxt程式設計最廣泛應用的軟體。

編寫程式自定義的遞迴函式long power int m,i

無語的店鋪 2010 12 2 09 09 提供答案有錯誤我將其修改如下 include long power int m,int n void main 另一解法 include long power int m,int n return y int main 這兩個辦法都可以解決這一個問題 遞迴...

C語言中能否在自定義函式中呼叫另自定義函式

風若遠去何人留 可以呼叫。c語言最基本的模組為函式,任意函式都可以呼叫其它任意一個函式,包括函式本身。1 自定義函式呼叫其它自定義函式的例子 include void fun1 int a 自定義函式fun1。void fun2 int m,int n 自定義函式fun2。int main 在這個例...

c語言中自定義函式的用法,C語言中,自定義函式的用法。

c語言中,每個函式都有返回值型別。可以是void,int,double,等,也可以是struct型別。在返回值是void型別的函式中,return一般在最後一行,後面不加任何值,而且此時return可以省略。如 void printresult int n 並不是return必須放在最後一行。只要達...