明明的隨機數c語言查重該怎麼辦

2025-06-14 15:10:07 字數 1225 閱讀 5769

1樓:吾安琪

演算法。篩排處理 明明的隨機數(c語言描述)

三寸雪。原創。

關注。3點贊·1550人閱讀。

問題 : 篩排處理 明明的隨機數。

時間限制: 1sec 記憶體限制: 128mb

題目描述。明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數(n<=100),對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。

請你協助明明完成「去重」與「排序」的工作。

輸入。每組輸入資料的第一行含有乙個正整數n,表示後面行中有n個隨機整數。若n=0,表示處理結束。

輸出。對應每組輸入資料,輸出一組資料,該資料由單獨一行開頭,內含一友信搜個n,表示後面有n個排好序的整數,整數之間空一格。每組輸出資料之間空一行。樣例輸入。

樣例輸出。思路:根據題目描述,無非就是將資料進行篩選剔除和重新排序。

第一種:先進行排序,再將相同的數逐個剔除。

第二種:先篩選剔除再進行重排。

我用的是第二種,同時是採取邊輸入邊剔除的方式。

**:#include《好歷》

int main()

int n,i,j,t,index=0,count=0; /index為0則表示無重複,不需要剔除,count用於計數。

int a[105];

scanf("%d",&n);

while(n!=0)

for(i=0;i0)

if(t==a[--j])

if(index==0)a[i-count]=t;

else index=0,count++;count記錄下多少個不用儲存的t

for(i=0;ia[j])t=a[i],a[i]=a[j],a[j]=t;

*輸出部分***

printf("%d",n-count);

for(i=0;i

int main()

int a[100];

int b[100];

int n,i,j,

2樓:帳號已登出

在已知輸入的值得範圍的情況下,所有可能輸入的數可以對映為陣列索引,當某一數值 m 輸入過之後,將陣列m索引下的值置1,之後再輸入相同的數時,即可做過濾處理銀悶,從而達到去重的效果。2)遍歷陣列,列印鋒激彎出陣列中值為1的索引,即可完成排序。鉛則。

在c語言中,怎樣產生0到1的隨機數

float b rand rand max 1.0 printf f n b 注釋 stdlib.h 標頭檔案中有巨集 define rand max 0x7fff rand 產生乙個0到0x7ffff即0到32767之間的隨機數rand rand max 1.0 就等於乙個0到1之間的 小數了,因...

用C語言寫出一道關於隨機數的程式設計題

這麼多問估計想寫的不多,我正在程式設計。順便給你個思路吧while k 0 printf 一共有 d位 n i printf 輸出 這裡是m i 1 裝著第乙個數字比如說1349的1,i為判斷出來的位數 for j i 1 j 0 j printf d m j printf n 之後迴圈檢測m中的每...

C語言寫乙個兩位的隨機數程式

這是的,方法非常正確。兩位數 也就是 了。這裡可以用生成隨機數取餘的方法得到,比如任何整數除以取餘,那得到的是 的數,那怎麼得到 呢?任何整數除以取餘,那得到的是 的數,再加上,也就是得到 的數了。include include include voidmain voidint i,k srand ...