我有兩個包含0到1之間隨機浮動數字的10個數字的數組。假設a[10]
和b[10]
。我現在使用第一個for
循環在變量c
中生成介於0和1之間的隨機浮點數,然後在第二個for
循環中將其與'b'進行比較。條件爲真時退出內環
當條件成立時,第二個for
循環應該停止並返回前一個for
循環以生成下一個隨機數。問題是我已經嘗試了幾種方法(在條件爲012時提高k到最大限制或break
函數或goto
函數從條件爲true時退出第二個for
循環,但它們中的任何一個都不能正常工作並且有時會給我一個垃圾值。
顯而易見的是,該隨機數將是小於或等於「b」在某些點,因爲兩者都具有0之間的數字爲1。
int d;
float e[10];
a={0.3,0.9,1,0.2,0.11,0.21,0.43,0.64,0.55,0.88};
b={0.4,0.7,0.78,0.11,0.49,0.2,0.13,0.74,0.65,0.98};
for (int j=0; j<10; j++) //first for loop for generating random number
{
float c=(float)rand()/((float)RAND_MAX);
for (k=0; k<10; k++) // 2nd for loop for comparison with generated number
{
if (c<=b)
{
d=k;
e[k]=a[d];
printf("%f\n",e);
k=10;
//goto jmp;
//break;
}
}
//jmp: printf("\n");
}
你可以使用2個不同的樂趣指針而不是這個,它的寫和處理並不複雜,更「功能性」。 – user2485710
你是不是指'e [j] = a [k]'? –
if(c <= b)這可能是錯誤的 – Joze