iT邦幫忙

0

C#題目 字串密碼

c#
匿名 2012-06-13 21:40:573510 瀏覽

用主控台撰寫:請輸入一個字串,如果 輸入A則顯示B,輸入B則顯示C以此類推...到輸入X則顯示Z輸入Z則顯示A。
請問要怎麼寫@@

看更多先前的討論...收起先前的討論...
wiseguy iT邦超人 1 級 ‧ 2012-06-13 22:12:13 檢舉
年輕人,你確定你適合念資訊相關科系嗎?這寫不到五行程式就能搞定的東西耶
匿名 檢舉
目前都是看著書上的例題作,再去想為什麼,實在是很難舉一反三,不知道是不是經驗不足我從開始練習到現在快半個月而已
匿名 檢舉
說真的...雖然看書上了解到語法但是題目好像都是死的實在很難活用語法,不知前輩有沒有什麼方向給我指引一下,是真的友興趣
匿名 檢舉
而且我了解語法後但是看到新的題目腦袋就又空白了...不知道前輩再學習的路程中有沒有遇過跟我類似的問題可以給我指點一下,還是說我真的不適合作這行....
小成 iT邦高手 10 級 ‧ 2012-06-14 09:10:42 檢舉
剛起步不用太苛責他
每個人都是一開始都不會的
個人認為
這不是苛不苛責的問題
寫程式本來就是很注重舉一反三的工作
因為你面對的是千變萬化的使用者需求
wiseguy iT邦超人 1 級 ‧ 2012-06-14 10:49:32 檢舉
正如 esyc 所言,每個人都是一開始都不會,但是是不是能很快地融會貫通、舉一反三、快速解決,是你適不適合走寫程式這行的關鍵。要不然光是看程式語法就腦筋空白,那幾十年的職場生涯要怎麼繼續走下去?是吧?你已經選答案了,跟我這三行的程式比一比,你覺得有什麼不同嗎?
ConsoleKeyInfo cki;
while (Char.IsLetter((cki = Console.ReadKey(true)).KeyChar))
	Console.Write(Convert.ToChar(cki.KeyChar == 'z' || cki.KeyChar == 'Z' ? cki.KeyChar-25 : cki.KeyChar+1));
小成 iT邦高手 10 級 ‧ 2012-06-14 11:07:30 檢舉
嗯~雖然我也覺得他這樣有點拚...
不過我是覺得他可能才剛開始學,他目前基礎是怎樣我們也不太曉得
也不曉得他現在幾歲,是否是學生,或許只是才剛接觸資訊
我以前念書時候也是有同學剛開始學得不太好
不過現在也是個非常厲害的高手一枚
我的意思是,如果可以給他指引一點方向,說說自己經驗,會比直接否定他會來的好
不過邏輯這東西~如何舉一反三~我還真不知道怎樣用文字表達~
既然樓主說自己有興趣,那就堅持下去吧~多看多學總是好的
下次樓主問問題或許可以不要問"怎麼寫"
而是可以先自己嘗試寫,不管寫對寫錯,然後可以將寫的結果貼出來跟大家請教
這樣你可以自己思考,也可以讓大家告訴你你的思考邏輯有那些問題,怎樣思考會更好,然後你在自己思考你可以怎樣改進與精進
就像上面兩種寫法,你看得懂嗎? 那兩種差別是甚麼? 那你又該怎樣去把這兩種寫法中你不懂的部分去學起來?
有興趣,那就要更努力
匿名 檢舉
恩恩 了解 我試著看你們寫的來了解看看,下次我會把我寫的地方貼上來與各位討論看看,說不定這樣才能比較能夠給我指導
匿名 檢舉
所以你們再做這行的時候,很多事情也是跟課本不一樣的也是第一次設計嗎?
匿名 檢舉
我20歲,資訊科的專科生而已,以前比較沒有那麼注重於課業都再玩值到快畢業了才發現玩過頭所以想認真拼專業技能我事對程式設計有興趣所以拼看看,靠著2年前上課的印象我只有 if else,
do while,try catch,for,switch case continue break,這些我還會。
從這些之後就完全不會了 所以現在要開始從新打基礎,只是靠著書上練先弄懂語法 我不知道這樣對不對,因為課本題目是死的常常練也會有印象,換題目比較簡單的我會複雜一點的就....難了
想認真拼專業技能我事對程式設計有興趣所以拼看看


我只想說
加油 and Good luck.
飛
科班出身是嗎?
那就多加強做這一行該有的 Sense 吧
wiseguy提到:
跟我這三行的程式比一比,你覺得有什麼不同嗎?


A:兩個程式都寫錯了
原因:題目有提到"輸入X則顯示Z"
逃跑
小成 iT邦高手 10 級 ‧ 2012-06-14 17:22:30 檢舉
.......海綿寶寶真是好眼力!!

2 個回答

10
ycl8000
iT邦高手 1 級 ‧ 2012-06-14 07:32:11
最佳解答
<pre class="c" name="code">
            int s = Console.Read();
            s++;
            if (s >= 97 && s == 123)  //a=97 z=122
            {
                s = 97;
            }
            else if (s >= 65 && s == 91)  //A=65 Z=90
            {
                s = 65;
            }

            char C = Convert.ToChar(s);

            Console.WriteLine("{0}", C);
            Console.ReadKey();
外獅佬 iT邦大師 1 級 ‧ 2012-06-14 08:27:34 檢舉

是囉~用ASCII 去推算就好囉....

6
michaelwan
iT邦高手 1 級 ‧ 2012-06-14 08:57:10

取餘數就可以了

我要發表回答

立即登入回答