![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 張紹融 ![]()
![]() |
輸入值為n 1<=n<=10 亂數產生n個小寫(a-z) 轉化成大寫(A-Z)並依序排列 輸入:5 ↵ 輸出:t z a d n A D N T Z ASCII: 英文小寫(a-z) = 97~122 英文大寫(A-Z) =65~90 |
1樓 |
請問一下 您的問題卡在那,需要什麼協助
1.輸入 N 的協助 2.產生亂數 3.大小寫轉換 4.排序 請將您的程式PO出來,好讓大伙協助你
本篇文章回覆於2018-06-17 06:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
張紹融 ![]() |
大小寫轉換 我卡住了
for(int i=0; i<n; i++){ num[i] = rand()%26+0x61; //26個字母+開頭是"a" printf("%c ",num[i]); } //0x41 A //0x61 a 轉化的過程中會變成兩種亂數
本篇文章回覆於2018-06-18 19:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
張紹融 ![]() |
//Char | Dec | Oct | Hex
// A | 65 | 0101| 0x41 // a | 97 | 0141| 0x61 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(){ srand(time(NULL)); //亂數種子 int n,num[10]={'\0'}; scanf("%d",&n); //輸入n(1-10) for(int i=0; i<n; i++){ num[i] = rand()%26+97; //26個字母+開頭是"a" printf("%c ",num[i]); } printf("\n"); for(int j=0; j<10 ; j++){ //泡沫排序法 for(int i=0; i<n-1; i++){ if(num[i]>num[i+1]){ int temp=num[i]; num[i]=num[i+1]; num[i+1]=temp; } } } for(int i=0; i<n; i++){ printf("%c ",num[i]); } system("pause"); return 0; }
本篇文章回覆於2018-06-18 19:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
最有價值解答
淺水員 ![]() |
請善用編輯功能貼程式碼喔,如下圖
![]() 然後下面是回應 3F 的程式碼 (其實 3F 已經快要完成了)
本篇文章回覆於2018-06-18 23:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
張紹融 ![]() |
可以大概註解一下 泡沫排序法的原理嘛
我大概知道轉化大寫的意思了 num[i]陣列裡的字串減掉"a" ascii的大小 加上"A" ascii的大小 加上
本篇文章回覆於2018-06-19 08:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
泡沫排序原理參考下圖:
![]() 另外 5F 中提到 num[i]陣列裡的字串減掉"a" ascii的大小 加上"A" ascii的大小 加上 提醒一下用詞部分 num 是字元陣列 num[i] 是字元 這邊並沒有字串,C語言的字串必須是以字元 '\0' 結尾的字元陣列
本篇文章回覆於2018-06-19 15:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |