我想定义两个变量x和y。 取决于程序,该程序应填充从0到x和从0到y的数组。
我尝试用for
填充它,并且可以正常工作,但是无法正确打印出来。
#include <stdio.h>
#define x 4
#define y 4
void build(){
int i=0, k=0;
int matrix[x][y];
for (i = 0; i < x; ++i) {
for (k = 0; k < y; ++k) {
matrix[i][k] = i;
matrix[i][k] = k;
}
}
printf("\t\n%d\n", matrix[x][y]);
}
我希望控制台中的数组看起来像这样。
0 1 2 3
0 1 2 3
0 1 2 3
0 1 2 3
答案 0 :(得分:4)
您看到,为了打印一个数组,您将必须遍历整个数据。您无法在C语言中以这种简单方式打印数组。
您的代码正在打印的内容是垃圾值,因为在索引4,4处,数组没有值。它的索引在x和y方向都从0,1..3开始。
希望有帮助。
$(document).ready(function(){
//init jQuery DataTable
$('#mainTabel').DataTable({
'pageLength': 25,
'columnDefs': [
{
'orderable': false,
'targets': 7
},
{
className: '.hide',
'visible': false
}
],
// dom: 'Bfrtip',
// buttons: [
// 'copy', 'csv', 'excel', 'pdf', 'print'
// ],
'language': {
'search': "_INPUT_",
'searchPlaceholder': 'Search...'
},
'paging' : true,
'lengthChange': true,
'searching' : true,
'ordering' : true,
'info' : true,
'autoWidth' : true
});
$('#mainTabel').DataTable().columns('.hide').visible(false);
//init botstrapToggle
initToggle();
$('#mainTabel_wrapper').click( function(){
initToggle();
});
$('#mainTabel_filter').keyup( function(){
initToggle();
});
function initToggle(){
$(function() {
$('.cb').find('input[type=checkbox][data-toggle=toggle]')
.each(function(){
$(this).bootstrapToggle();
});
});
};
});
答案 1 :(得分:0)
在C语言中,无法一次性打印数组。您必须遍历数组的每个元素并进行打印。
for(int i = 0; i < x; ++i){
for(int j = 0; j < y; ++j){
printf("%d ", matrix[i][j]);
}
printf("\n");
}
答案 2 :(得分:0)
我试图猜测您的误解,并注释和编辑了您的代码,以解释其工作原理以及您需要了解的内容。
#include <stdio.h>
#define x 4
#define y 4
void build(){
int i=0, k=0;
int matrix[x][y]; // top allowed indexes are x-1 and y-1
for (i = 0; i < x; ++i) {
for (k = 0; k < y; ++k) {
matrix[i][k] = i; // first write getting ignored/overridden by next
matrix[i][k] = k;
// printing here gets you many values, note the removed \n
printf("\t%d", matrix[i][k]);
}
// printing line break here gets you lines instead of single values
printf("\n");
}
// not inside any loop, so only one %d value gets printed
// printf("\t\n%d\n", matrix[x][y]); // accessing beyond both dimension
// also your attempt to let printf figure out how to print the whole 2D array,
// at least that is what I think you try, does not work in C
}