![]() |
有個程式(C語言)做不出來
1.設計程式 輸入一整數 求其絕對值
如: 輸入"-1" 則顯示"1" 2.任意輸入3個數字 依其大小排列印出 如 輸入"1352" 則顯示"1235" 3.輸入密碼至多3次 並判斷是否正確 如 指定密碼123 則要判斷是否正確 只能輸入3次 |
先回答你的第一個問題
整數的話可以用 abs(number); 函數來取絕對值 ... 浮點數的話可子用 fabs(number); 函數來取絕對值 ... 那個 nunber 就是想要取絕對值的數值 ... DEV-C 範例程式 引用:
|
這程式我看不懂耶 大大是用C++語法嗎
小弟功力不佳 |
都是很單純的要求
其實版友有心要學程式設計的話可以自己試試 再貼出自己的創作讓大家參與 比如 1. 可以用 abs 這個函數 或判斷 小於0 的話 a=-a 這都可以達到 絕對值 的效果 2. 的話可以使用最簡單的排列法 氣泡排列法 3. 的話只要一個 for 迴圈 及 if 判斷,如密碼是字串可用 strcmp函式 |
回答第 2 個問題
編寫的概念上 既然是數字的排列的話... 923678 不管是以整數或是浮點數的形式的話,都只是一個數值, 不能直接進行排序...。 如果 923678 是字串的話,對電腦來說 9 或 2 或 3 或 6 或 7 或 8 都是各佔 1 Byte 的字元,自然能夠排序。 那數值真的不能牌嗎 ? 可以必須以 itoa 來進行轉型(把數值轉換成字串) 當排序作業完成後可以用 atoi 將字串轉換回數值 itoa 的用法 itoa (value,string,radix); value ︰欲轉換的數值 string︰轉換成字串時放置的字元陣列 radix ︰以哪一種數字系統做轉換(10為10進位、2為2進位、16為16進位) ex: itoa ( 659817, str01, 10); atoi 的用法 atoi ( 字元或字串 ); ex: atoi("1963"); 因為只有轉換所以要用一個變數去接 ex: i = atoi("1963"); 這樣 i 的內容才會有 1963 。 DEV-C 程式 以字串直接處裡 引用:
引用:
|
引用:
不過 C 跟 C++ 大部分的指令是相通的 |
第 3 個問題
用 for 或 while 或 do {} while (); 迴圈控制輸入次數 用 if 作為 a == b 的判斷 DEV-C 程式 引用:
|
大大所寫的程式好像都是用陣列去寫的
我還沒學到....我只學到函數 |
引用:
能存資料的基本類型 1.變數 2.陣列 3.鏈結 變數跟陣列的宣告差不多,語法也差不多 ... 鏈結就不一樣了,又臭又長 ... 很不好懂,厲害的程式以鏈結為主 甚至能衍生出更厲害的結構 ... 常用變數宣告 int 整數 ;佔 2 個 Byte float 浮點數 ;佔 4 個 Byte char 字元 ;佔 1 個 Byte 常用陣列宣告 int 整數[n] ;佔 2 * n 個 Byte float 浮點數[n] ;佔 4 *n 個 Byte char 字元[n] ;佔 1 * n 個 Byte n 指陣列大小 使用上變數陣列都可以在宣告時給予初值︰ 如 引用:
陣列也是如此 ... 引用:
引用:
int A[5]; int B[]={1,2,3,4,5}; 所佔用的記憶體一樣 A 是沒有指定初值,佔用 5 個元素 B 是依照初值用了5 個元素 以 C/C++ 來說 陣列宣告後要用 以 int A[5]; 其實是 A[0],A[1],A[2],A[3],A[4] 共 5 個, 可以各別給職 如 A[3] = 100; 字元陣列比較特別 char x[5]; 初值可以用 char x[5]={'A','B','C','D','\0'}; 初值也可以用 char x[5]="ABCD"; '\0' 代表該字串的結束或結尾,這是 C/C++ 規定的 宣告後要改變內容不像 int 或 float 用 = 就能改變 而是必須用 strcpy (目的,來源); 來改變該字元陣列的內容 如 strcpy (x,"ABCD"); x 才會是 ABCD。 'A' 為字元 A "A" 為字串 A (會佔 2 個 Byte,'A','\0') 可以用跟等到你學到了就清楚是怎麼一回事了。 |
所有時間均為台北時間。現在的時間是 02:52 AM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *