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

樓主

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

各位大神幫忙解題
輸入1-10的數字 亂數產生0-9 並且由小排到大
例:

輸入:5 ↵

輸出:8 0 1 4 1

0 1 1 4 8




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

P陳
檢舉此回應
題目比答案難很多
請參考您的另一個題目
本篇文章回覆於2018-06-17 06:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

張紹融
檢舉此回應
#include <stdio.h>
#include <stdlib.h>
int main()
{
srand(1); //亂數種子
int x,i;
scanf("%d",&x); //input
for(i=0; i<x; ++i)
printf("%d ", rand()%10); //鍵入1~10 列印0~9
system("pause");
return 0;
}

目前執行輸入5
輸出 1 7 4 0 9
要怎麼排列大小
排列不太行..


本篇文章回覆於2018-06-17 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

張紹融
檢舉此回應
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
srand(time(NULL)); //亂數種子
int i,n;
scanf("%d",&n);
for(i=0; i<n; ++i)
printf("%d ", rand()%10);
system("pause");
return 0;
}



修正後

參考程式碼

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,n,*number;
srand(time(NULL)); //時間亂數種子
scanf("%d",&n); //輸入n

number = malloc(sizeof(int)*n);//執行後錯誤
for(i=0; i<n; ++i){
number[i]=rand()%10;
}
printf("%d ",number[i]);
system("pause");
free(number);
return 0;
}

number = malloc(sizeof(int)*n); 這邊就有執行錯誤了
本篇文章回覆於2018-06-17 17:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
錯誤的訊息是什麼?
本篇文章回覆於2018-06-17 21:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

張紹融
檢舉此回應
錯誤
本篇文章回覆於2018-06-17 23:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

P陳
檢舉此回應
那是指 Number 不能接 呼叫 Malloc 的回應值,要再轉換
請參考
本篇文章回覆於2018-06-18 07:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

P陳
檢舉此回應

關鍵字 invalid conversion from `void*' to `char*'
還有很多有跟您相同的狀況

這個也可以參考

加油
本篇文章回覆於2018-06-18 07:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

張紹融
檢舉此回應
有什麼辦法把輸出的亂數拿來作排列大小

int main(){
srand(time(NULL)); //亂數種子
int i,n;
scanf("%d",&n);
for(i=0; i<n; ++i)
printf("%d ", rand()%10); // 這一段
system("pause");
return 0;
}
本篇文章回覆於2018-06-18 12:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

張紹融
檢舉此回應
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){

srand(time(NULL)); //亂數種子
int i,n,number;
scanf("%d",&n);

for(i=0; i<n; i++){
number = rand()%10;
printf("%d ",number);
}

system("pause");
return 0;
}

成功了
本篇文章回覆於2018-06-18 13:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

張紹融
檢舉此回應
我想利用泡沫排序法 要怎麼寫比較好
本篇文章回覆於2018-06-18 14:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

張紹融
檢舉此回應
//輸入數值n:(1-10) 亂數產生數字(0-9)
#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()%10; //亂數產生(0-9)
printf("%d ",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;
}
}
}
本篇文章回覆於2018-06-18 17:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

張紹融
檢舉此回應
//輸入數值n:(1-10) 亂數產生數字(0-9)
#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()%10; //亂數產生(0-9)
printf("%d ",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("%d ",num[i]);
}

system("pause");
return 0;
}
本篇文章回覆於2018-06-18 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

淺水員
檢舉此回應
泡沫排序那邊可以改這樣
可以少跑一些迴圈
(原本的泡沫排序)


本篇文章回覆於2018-06-18 18:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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