कोशिश इस तरह, एक अनियमित समारोह बनाने के लिए:
void randomize(int v[], int size, int r_max) {
int i,j,flag;
v[0] = 0 + rand() % r_max; // start + rand() % end
/* the following cycle manages, discarding it,
the case in which a number who has previously been extracted, is re-extracted. */
for(i = 1; i < size; i++) {
do {
v[i]= 0 + rand() % r_max;
for(j=0; j<i; j++) {
if(v[j] == v[i]) {
flag=1;
break;
}
flag=0;
}
} while(flag == 1);
}
}
randomize(v, 11, 11);
:
फिर, बस इसे एक सरणी से गुजर रहा 11 की v[]
तत्वों, इसके आकार, और ऊपरी सीमा फोन
सरणी, इस तथ्य के कारण कि संदर्भ द्वारा तर्क के रूप में पारित किया गया है, यादृच्छिक हो जाएगा, बिना दोहराए और संख्याएं एक बार होती हैं।
randomize
कॉल करने से पहले srand(time(0));
कॉल करने के लिए याद रखें, और प्रारंभ करने में int v[11]={0,1,2,3,4,5,6,7,8,9,10};
स्रोत
2012-07-03 18:27:44
एक [0, 10) अनुक्रम जनरेट करें और इसे शफ़ल। – cnicutar
सबसे पहले, [आपने क्या प्रयास किया है?] (Http://whathaveyoutried.com) दूसरा, यह 0-10 या 1-10 है? –
हाय कार्ल, मैंने अनुक्रम को रैंड() फ़ंक्शन के साथ उत्पन्न करने का प्रयास किया है, लेकिन परिणाम प्राप्त नहीं कर सका। दूसरा, ऊपर वर्णित रेंज 0 से 10 है। धन्यवाद –