我为C项目创建了一个数字1-5的数组。 现在我想在这个数组中随机放置15个零,但我也不希望它们在数组的[0] [0]上
void setMyArray(int arr[R][C]){
int i,j,y;
int x;
for(i=0; i<R; i++){
for(j=0; j<C; j++){
y=rand()%5;
arr[i][j]=y+1;
}
}
for(i=0; i<15; i++)
x=rand()%1;
arr[i][j]=x;
}
通过这样做,我得到的只是数组开头的15个零并且没有改组。
任何人都可以帮助我更正我的代码吗?谢谢。
答案 0 :(得分:0)
这里有一个可能的方法,其中包含一个关于改组阵列的小例子:
!!! 5
%html
%head
%meta(name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1")
= stylesheet_link_tag "application"
= javascript_include_tag "application"
= render :partial => "layouts/metatag"
- if GMAP
= javascript_include_tag "http://maps.google.com/maps/api/js?sensor=false"
%body
= render :partial => "mindapp/menu"
%div{"data-id" => "main", "data-role" => "panel", "data-backbtn"=>"false"}
- if @cache
- cache = {}
- else
- cache = {"data-cache"=>"never"}
- if @backbtn
- backbtn= {"data-backbtn"=>"true"}
- else
- backbtn= {"data-backbtn"=>"false"}
%div{{"data-role" => "page"}.merge(cache) }
%div{{"data-role" => "header"}.merge(backbtn)}
%h1= @title || DEFAULT_TITLE
%div{"data-role" => "content"}
= yield
= render :partial => "mindapp/static"
:javascript
$(document).on("pagehide", 'div', function(e,ui) {
var page = $(e.target);
if(page.attr('data-cache') == 'never') {
page.remove();
};
});
$( document ).on( "pagechange", function(){
$.get("/mindapp/ajax_notice", function(r) {$(r).appendTo('head').remove()});
var meta = $(".content").text();
if (!meta) {
meta = "Mindapp Tools to create visual programming using mindmap"
}
$('meta[name=description]').attr('content', meta);
});
/= raw handle_ma_notice
输出:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void shuffle(int *array, int n) {
srand((unsigned)time(NULL));
for (int i = 0; i < n - 1; i++) {
size_t j = i + rand() / (RAND_MAX / (n - i) + 1);
int t = array[j];
array[j] = array[i];
array[i] = t;
}
}
#define N 6
int main() {
int positions[N] = {0, 1, 2, 3, 4, 5};
for (int j = 0; j < 10; j++) {
shuffle(positions, N);
for (int x = 0; x < N; x++) printf("%d ", positions[x]);
printf("\n");
}
return 0;
}
现在,如果我们专注于您的特定示例,您想要将15个零的随机值数组混洗,您只需要首先用正整数填充数组,然后添加15个零,例如在前15个中位置然后随意改组数组,如下所示:
2 5 3 1 0 4
3 4 1 5 2 0
1 0 5 4 3 2
5 2 4 0 1 3
4 3 0 2 5 1
0 1 2 3 4 5
2 5 3 1 0 4
3 4 1 5 2 0
1 0 5 4 3 2
5 2 4 0 1 3