台灣最大程式設計社群網站
線上人數
790
 
會員總數:243161
討論主題:187981
歡迎您免費加入會員
討論區列表 >> C/C++ >> 亂數產生int rand 2
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
亂數產生int rand 2
價值 : 5 QP  點閱數:194 回應數:6

樓主

張紹融
門外漢
0 6
130 37
發送站內信

幫忙解題
輸入值為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


搜尋相關Tags的文章: [ 亂數產生 ] , [ rand ] , [ 解題 ] ,
本篇文章發表於2018-06-16 22:35
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
請問一下 您的問題卡在那,需要什麼協助
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
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.