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 ...